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代码时,需要付出二次评估的代价,首先需要判断当前代码是否为正常代码,然后再执行过程中执行字符串中的代码还需要进行另一次评估,二次评估是一项性能消耗极为昂贵的操作,与直接包含相应代码相比需要耗费更多的时间。在日常开发中应当尽量避免使用二次评估。
浙公网安备 33010602011771号