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()函数用法详解属于前端实例代码,有关更多实例代码大家可以查看

回复

我来回复
  • 暂无回复内容