eval() 函数会将传入的字符串当做 JavaScript 代码进行执行。
console.log(eval('2 + 2')); // Expected output: 4 console.log(eval(new String('2 + 2'))); // Expected output: 2 + 2 console.log(eval('2 + 2') === eval('4')); // Expected output: true console.log(eval('2 + 2') === eval(new String('2 + 2'))); // Expected output: false
eval() 是一个危险的函数,它使用与调用者相同的权限执行代码。
如果你用 eval() 运行的字符串代码被恶意方(不怀好意的人)修改,你最终可能会在你的网页/扩展程序的权限下,在用户计算机上运行恶意代码。
更重要的是,第三方代码可以看到某一个 eval() 被调用时的作用域,这也有可能导致一些不同方式的攻击。