eval()函数计算字符串执行Javascript作为脚本代码。



如果参数是一个表达式,eval()函数将执行的表达。如果参数是一个Javascript语句,eval()将执行Javascript语句。

语法

复制代码代码如下所示:

eval(字符串)







参数
描述


字符串
这是必要的,要计算的字符串包含要计算的Javascript表达式或要执行的语句。





eval()函数的用法详解:

这个函数可以使用的频率不是太高,但在某些情况下它有很大的效果。下面是对使用eval函数介绍()函数。



这个函数可以接受一个字符串STR作为参数,并使用这个STR作为一个Javascript代码来执行。如果STR执行的结果是一个值,则返回这个值,否则返回到未定义的值。如果参数不是字符串,则直接返回参数,示例如下:




eval(var a = 1); / /声明变量并分配1个A.
eval(2 + 3); / /添加操作,返回值。
eval(中()); / /考试(功能)。
eval({ 2 } B:); / /声明一个对象。


在上面的代码中,我们应该特别注意最后一条语句声明一个对象的事实。如果我们想要返回这个对象,我们需要在对象外面嵌套一个括号如下:



复制代码代码如下所示:

eval(({ 2 } B:));



这是一个简单的介绍了eval()函数的使用,这是容易理解的。关于这个功能最复杂的事情是关于其行动范围。




函数A(){
eval(var x = 1 );
console.log(X);
}
(a);
console.log(X);


在上面的代码中,第一个警报()函数可以弹出1,而第二个警报()函数将是错误的,因为未定义的x。

从上述性能,eval()函数不创建一个新的范围,其范围是其位置的范围。这是在所有主要浏览器,但有时你需要eval()函数设置为全球范围内,它可以用(EVAL)在全球范围内,但通常在实践中,需要在局部范围全球范围内使用该功能,这可以用时间(窗口。EVAL)的实现,如上面的代码可以修改如下:




函数A(){
window.eval(var x = 1 );
console.log(X);
}
(a);
console.log(X);


在上面的代码中,两警报()语句可以弹出1。但这种方式在标准的浏览器是可以接受的,但在IE8浏览器,IE8,仍表现为评价相同(),和范围是他们的行动范围,这个时候你可以使用IE浏览器的独特window.execscript()解决IE8,IE8浏览器的问题。为了将所有的主流浏览器兼容,代码转换为:




函数A(){
如果(窗口。execscript){
Window.execscript (var x=1);
}
别的{
window.eval(var x = 1 );
}
console.log(X);
}
(a);
console.log(X);


如果浏览器支持window.execscript(),然后使用这个功能,window.eval()是不支持的,所以我们可以解决IE8,IE8浏览器下的问题。

以上是使用eval()函数的详细解释,在Javascript中,是由你。希望你能喜欢。