十年专注于品牌网站建设 十年专注于品牌网站建设,低调、有情怀的网络应用服务商!
南昌百恒网络微信公众号 扫一扫关注
小程序
tel-icon全国服务热线:400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号
扫一扫打开百恒网络微信小程序

百恒网络

南昌百恒网络

ECMAScript中eval()方法使用方法及注意事项

百恒网络 2013-02-18 1539

我们介绍整个ECMAScript语言中最强大的一个方法:eval()。eval()方法就像是一个完整的ECMAScript解析器,它只接受一个参数,即要执行的ECMAScript(或JavaScript)字符串。看下面的例子:

eval("alert('专业做网站')");

这行代码的作用等价于下面这行代码:

alert("专业做网站");

当解析器发现代码中调用eval()方法时,它会将传人的参数当作实际的ECMAScript语句来解析,然后把执行结果插入到原位置。通过eval()执行的代码被认为是包含该次调用的执行环境的一部分,因此被执行的代码具有与该执行环境相同的作用域链。这意味着通过eval()执行的代码可以引用在包含环境中定义的变量,举个例子:

var msg="hello world";

eval("alert(msg)"); //"hello world"

可见,变量msg是在eval()调用的环境之外定义的,但其中调用的alert()仍然能够显示"helloworld"。这是因为上面第二行代码最终被替换成了一行真正的代码。同样地,我们也可以在eval()调用中定义一个函数,然后再在该调用的外部代码中引用这个函教:

eval("function sayHi() (alert('hi');)");

sayHi();

南昌网络公司技术人员提示,函数sayHi是在eval()内部定义的,但由于对eval()的调用最终会被替代换成定义函数的实际代码,因此可以在下一行调用sayHi().

能够解释代码字符的能力非常强大,但也非常危险.因此在使用eval()时必须极为谨慎,特别是在用它执行用户输入数据的情况下.否则,可能会有恶意用户输入威胁你的站点或应用程序安全代码(即所谓的代码注入).

本资料仅限南昌网站制作公司百恒网络技术部内部人员交流使用,方便内部技术人员学习交流,请勿作其他用途.谢谢支持!

文章出自:南昌建网站公司-百恒网络 http://www.jxbh.cn 如转载请注明出处


400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号
扫一扫打开百恒网络小程序

欢迎您的光顾,我们将竭诚为您服务×

售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售后服务 售后服务
 
售后服务 售后服务
 
备案专线 备案专线
 
×