javascript与许多脚本语言同样,容许你在程序中获取一个包含代码的字符串而后运行它。例以下面代码:javascript
<html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/> <title>避免二次评估</title> </head> <body> <script> var num1 = 5; var num2 = 6; window.onload = function(){ result = eval("num1+num2"); console.log("eval方式:"+result); var sum = new Function("arg1","arg2","return arg1+arg2"); console.log("eval方式:"+sum(num1,num2)); setTimeout("console.log('setTimeout方式:'+(num1+num2))",100); setInterval("console.log('setInterval方式:'+(num1+num2))",100); } </script> </body> </html>
在js文件中执行另外一段Javascript代码时,须要付出二次评估的代价,首先须要判断当前代码是否为正常代码,而后再执行过程当中执行字符串中的代码还须要进行另外一次评估,二次评估是一项性能消耗极为昂贵的操做,与直接包含相应代码相比须要耗费更多的时间。在平常开发中应当尽可能避免使用二次评估html