JavaScript为什么不推荐使用eval
1. eval不容易调试。用chromeDev等调试工具无法打断点调试,这种不容易调试的函数是不推荐使用的;
2.性能问题,在旧的浏览器中如果你使用了eval,性能会下降10倍;
3.安全问题,它会执行任意传给它的代码,在代码字符串未知或者是来自一个不信任的源时,绝对不要使用 eval,比如说稍不注意容易引起XSS攻击
什么时候要用eval函数
eval函数通常在需要将字符串作为Python代码执行的情况下使用。以下是一些常见的使用eval函数的情况:
动态执行代码:当需要在程序运行时执行动态生成的代码时,可以使用eval函数。例如,根据用户输入的表达式计算结果,或者根据配置文件中的规则来执行相应的操作。
字符串转换为Python对象:当需要将字符串转换为Python对象时,可以使用eval函数。例如,将表示列表、字典、元组等的字符串转换为相应的Python对象。
简化计算表达式:当需要对数学表达式进行计算时,可以使用eval函数。例如,计算一个包含数学运算符和变量的字符串表达式的结果。
需要注意的是,eval函数具有执行任意代码的风险,因此在使用时需要谨慎。应该避免使用eval函数来执行未经验证的用户输入,以防止潜在的安全问题。
eval()函数,这个函数可以把一个字符串当作一个JavaScript表达式一样去执行它。
举个小例子:
var the_unevaled_answer = "2 + 3"
; var the_evaled_answer = eval("2 + 3"); alert("the un-evaled answer is " + the_unevaled_answer + " and the evaled answer is " + the_evaled_answer); 如果你运行这段eval程序, 你将会看到在JavaScript里字符串"2 + 3"实际上被执行了。
所以当你把the_evaled_answer的值设成 eval("2 + 3")时, JavaScript将会明白并把2和3的和返回给the_evaled_answer。 这个看起来似乎有点傻,其实可以做出很有趣的事。比如使用eval你可以根据用户的输入直接创建函数。
这可以使程序根据时间或用户输入的不同而使程序本身发生变化,通过举一反三,你可以获得惊人的效果。 在实际中,eval很少被用到,但也许你见过有人使用eval来获取难以索引的对象。
ExcelWebBrowser1中VBA怎么去执行网页中的javascript
.Navigate "javascript:alert("""")" 复制代码 .document.parentWindow.execScript "alert(""玩"")" 复制代码 .document.parentwindow.eval "javascript:alert(""玩"")" 复制代码 好几个方式都可以

