eval() 方法就像是一个完整的 ECMAScript 解析器,它只接受一个参数,即要执行的 ECMAScript(或 JavaScript)字符串。
语法:eval(string)
返回值:
通过计算 string 得到的值(如果有的话)。
看下面的例子:
eval("alert('hi')"); |
这行代码的作用等价于下面这行代码:
alert("hi"); |
通过 eval() 执行的代码被认为是包含该次调用的执行环境的一部分,因此被执行的代码具有与该执行环境相同的作用域链。
意味着通过 eval() 执行的代码可以引用在包含环境中定义的变量,举个例子:
var msg = "hello world"; eval("alert(msg)"); //"hello world |
同样地,我们也可以在 eval() 调用中定义一个函数,然后再在该调用的外部代码中引用这个函数:
eval("function sayHi() { alert('hi'); }"); sayHi(); |
能够解释代码字符串的能力非常强大,但也非常危险。因此在使用 eval() 时必须极为谨慎,特别是在用它执行用户输入数据的情况下。否则,可能会有恶意用户输入威胁你的站点或应用程序安全的代码(即所谓的代码注入)
© admin for 可乐吧, 2015. |
Permalink |
No comment |
Add to
del.icio.us
Post tags: eval()方法, 作用域链
您可能也喜欢: |
javascript replace() 方法 |
javascript 编码规范指南(2) |
能说明你的Javascript技术很烂的五个原因 |
javascript重复一个字符串方法 |
无觅 |
Feed enhanced by Better Feed from Ozh