1.eval(jsstr)和new Function(jsstr)
eval
和new Function
都可以动态解析和执行字符串。会将字符串转义为js代码。区别如下:
1.对解析内容的运行环境判定不同:eval中的代码执行时的作用域为当前作用域,它可以访问到函数中的局部变量,也可以访问全局变量。new Function
中的代码执行时的作用域为全局作用域,不论它的在哪个地方调用的,所以它访问的都是全局变量,无法访问局部作用域的变量。
2.eval()
安全性较低,最好不要使用。它使用与调用者相同的权限执行代码。 eval()
运行的字符串代码若被恶意方修改,将会影响计算机的安全。
3.eval
比new Function
更慢,因为它必须调用 JS 解释器,很吃性能。
本文固定连接:https://code.zuifengyun.com/2020/03/2849.html,转载须征得作者授权。