eval()函数用法详解
此函数的作用就是把一段字符串传递给javascript解释器,由解释器将这段字符串解释成javascript代码,并且执行它。
语法结构:
eval(string)
参数解析:
string:必需,要计算的字符串,其中含有要计算的javascript表达式或要执行的语句。
最后返回通过计算string得到的值(如果有的话)。
该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作任何改变地返回。因此请不要为 eval() 函数传递 String 对象来作为参数。
报错的几种情况:
(1).如果试图覆盖eval属性或把它赋予另一个属性,并通过该属性调用它,则抛出一个EvalError异常。
(2).如果参数中没有合法的表达式和语句,则抛出SyntaxError异常。
(3).如果非法调用eval(),则抛出EvalError异常。
(4).如果传递给eval()的js代码生成了一个异常,eval()将把该异常传递给调用者。
简单代码实例如下:
eval("console.log('前端教程网')");
当然在实际应用中不可能有这么简单的代码,下面再来一个较为接近实际应用的代码。
for (var loop = 1; loop < 10; loop++){ eval('document.getElementById("div"+loop).innerHTML="www.pipipi.net"'); }
上面的代码也非常的简单,可以设置不同id的div元素中的内容。
eval()用法深入介绍:
eval("var i=5"); console.log(i);
上面代码的输出值是5,说明eval()并没有创建一个独立的作用域。
var func = function (){ eval("var index=5"); console.log(index); } func(); console.log(index)
上面代码的输出结果说明,eval()不但不会创建自己的作用域,而且代码就是在当前作用域执行的。
在低版本的IE浏览器中还支持execScript()方法具体可以参阅execScript()方法用法简单介绍一章节。
特别说明:严格模式下,eval()会生成一个单独的作用域。
eval()函数用法详解,这样的场景在实际项目中还是用的比较多的,关于eval()函数用法详解就介绍到这了。
eval()函数用法详解属于前端实例代码,有关更多实例代码大家可以查看。