很多規(guī)范說是eval is evil灾部,自己也就人云亦云珊佣,沒有深究過蹋宦,但是到底eval是不是evil,看了P84頁咒锻,其實(shí)我本人覺得eval還是不錯(cuò)冷冗,只不過有時(shí)候有些調(diào)皮吧了,當(dāng)你掌握它的脾氣的時(shí)候惑艇,在某些特定的場合下蒿辙,應(yīng)該還是蠻不錯(cuò)的拇泛。
避免eval的以下缺點(diǎn),應(yīng)該還是不錯(cuò)的東西
不要對eval賦予別名思灌,通過別名調(diào)用eval時(shí)俺叭,會(huì)按全局來執(zhí)行,會(huì)覆蓋或定義新的全局變量和函數(shù)泰偿。
盡量在函數(shù)中使用eval熄守,將其影響控制在當(dāng)前函數(shù)內(nèi)。
eval的性能問題甜奄,這個(gè)取決于實(shí)際應(yīng)用場景
其實(shí)我們也可以使用Function構(gòu)造函數(shù)去動(dòng)態(tài)執(zhí)行代碼
var test = new Function(‘name, age’, ‘console.log(name, age)’);
test(‘hjzheng’, 30);
很喜歡知乎上的答案 https://www.zhihu.com/question/20591877