函数用法详解
分类:计算机网络

eval() 函数计算 JavaScript 字符串,并把它当做脚本代码来施行。

eval()函数用法详解:
此函数恐怕选取的成效而不是太高,不过在好几情状下有所相当的大的职能,下边就介绍一下eval()函数的用法。
语法结构:

万一参数是贰个表达式,eval() 函数将试行表明式。要是参数是Javascript语句,eval()将举行 Javascript 语句。

eval(str)

语法

此函数基本上能用一个字符串str作为参数,并把此str当做一段javascript代码去推行,要是str施行结果是一个值则赶回此值,不然再次来到undefined。要是参数不是二个字符串,则直接回到该参数,实比如下:

复制代码 代码如下:

eval("var a=1");//声明一个变量a并赋值1。
eval("2+3");//执行加运算,并返回运算值。
eval("mytest()");//执行mytest()函数。
eval("{b:2}");//声明一个对象。

eval(string)

在以上代码极其注意的是,最终三个言辞是宣称了三个对象,假如想回到此目的,则要求在对象外面再嵌套一层小括号,如下:

参数 描述
string 必需。要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。
eval("({b:2})");

eval()函数用法详解:

如上内容大约介绍了eval()函数的用法,比较轻易理解。此函数最令人认为思疑的是有关它的效用域难题,上边就整合实例来介绍一下巢毁卵破内容,先看一段代码实例:

此函数或然利用的频率实际不是太高,可是在好几意况下有所非常大的机能,上面就介绍一下eval()函数的用法。

function a(){ 
  eval("var x=1"); 
  console.log(x); 
} 
a(); 
console.log(x);

此函数能够承受一个字符串str作为参数,并把此str当做一段javascript代码去实施,若是str推行结果是贰个值则赶回此值,不然重临undefined。倘若参数不是二个字符串,则一直重回该参数,实举个例子下:

在地点的代码中,第贰个alert()函数能够弹出1,而第贰个会因为x未定义而报错。
由上述表现能够得出,eval()函数并不会创立一个新的作用域,而且它的作用域正是它所在的功效域。这在有着主流浏览器都以那般,可是一时须要将eval()函数的作用域设置为全局,当然能够将 eval()在大局功能域中使用,可是频仍实际应用中,需求在有的功效域使用全部全局作用域的此函数,这一年能够用window.eval()的方法达成,譬如以上代码可以改动如下:

eval("var a=1");//声明一个变量a并赋值1。
eval("2+3");//执行加运算,并返回运算值。
eval("mytest()");//执行mytest()函数。
eval("{b:2}");//声明一个对象。
function a(){ 
  window.eval("var x=1"); 
  console.log(x); 
} 
a(); 
console.log(x);

在上述代码特别注意的是,最终一个话语是宣称了一个指标,假如想回去此指标,则供给在目的外面再嵌套一层小括号,如下:

在上头的代码中,两个alert()语句都能够健康弹出1。不过当中方法在正规浏览器中是足以的,可是在IE8和IE8以下浏览器中的表现照旧和 eval()同样,成效域是它们所在的功效域。这年可以使用IE浏览器只有的window.execScript()解决IE8和IE8浏览器的问题。为了贯彻包容全部主流浏览器,把代码退换如下:

复制代码 代码如下:

function a(){ 
  if(window.execScript){ 
    window.execScript("var x=1"); 
  } 
  else{ 
    window.eval("var x=1"); 
  } 
  console.log(x); 
} 
a(); 
console.log(x);

eval("({b:2})");

举个例子浏览器辅助window.execScript(),则应用此函数,不协理则选拔window.eval(),这样就足以缓和IE8和IE8以下浏览器的题材。
特意表达:上边装有代码建议复制到当地开展测量试验,恐怕在本编辑器内有误。

以上内容简短介绍了eval()函数的用法,相比较易于驾驭。此函数最令人认为狐疑的是关于它的成效域难点,下边就构成实例来介绍一下连锁内容,先看一段代码实例:

原稿地址是:

function a(){ 
 eval("var x=1"); 
 console.log(x); 
} 
a(); 
console.log(x); 

更加多内容能够参见:

在上头的代码中,第四个alert()函数能够弹出1,而第叁个会因为x未定义而报错。
由以上表现能够吸收,eval()函数并不会创设四个新的成效域,並且它的效率域便是它所在的功用域。那在享有主流浏览器都是如此,可是有时须求将eval()函数的功效域设置为全局,当然能够将eval()在全局功用域中利用,但是频仍实际选用中,须要在一部分成效域使用具备全局作用域的此函数,这一年能够用window.eval()的法子完成,比方以上代码能够改变如下:

function a(){ 
 window.eval("var x=1"); 
 console.log(x); 
} 
a(); 
console.log(x); 

在上头的代码中,多少个alert()语句都能够常常弹出1。但是个中艺术在行业内部浏览器中是能够的,不过在IE8和IE8以下浏览器中的表现仍旧和eval()同样,成效域是它们所在的成效域。那年能够采用IE浏览器唯有的window.execScript()解决IE8和IE8浏览器的主题素材。为了落到实处包容全数主流浏览器,把代码改变如下:

function a(){ 
 if(window.execScript){ 
  window.execScript("var x=1"); 
 } 
 else{ 
  window.eval("var x=1"); 
 } 
 console.log(x); 
} 
a(); 
console.log(x); 

假设浏览器扶助window.execScript(),则运用此函数,不支持则动用window.eval(),那样就能够缓和IE8和IE8以下浏览器的主题材料。

上述内容是笔者给我们分享的JavaScript中eval()函数用法详解,希望大家欢欣。

您大概感兴趣的稿子:

  • JavaScript学习小结之被嫌弃的eval函数和with语句实例详解
  • JavaScript中eval函数的难题
  • javascript中eval函数用法解析
  • JavaScript中的eval()函数使用介绍
  • JavaScript eval() 函数介绍及运用示范
  • JavaScript中的eval()函数详解
  • JS中eval函数的利用示例
  • 对js eval()函数的一对视角

本文由正版必中一肖图发布于计算机网络,转载请注明出处:函数用法详解

上一篇:通过安装CSS中的position属性来固定层的地方 下一篇:没有了
猜你喜欢
热门排行
精彩图文