当前位置: 首页 > 编程笔记 >

JavaScript中eval()函数用法详解

慕容典
2023-03-14
本文向大家介绍JavaScript中eval()函数用法详解,包括了JavaScript中eval()函数用法详解的使用技巧和注意事项,需要的朋友参考一下

eval() 函数计算 JavaScript 字符串,并把它作为脚本代码来执行。

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

语法


eval(string)

参数 描述
string 必需。要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。

eval()函数用法详解:

此函数可能使用的频率并不是太高,但是在某些情况下具有很大的作用,下面就介绍一下eval()函数的用法。

此函数可以接受一个字符串str作为参数,并把此str当做一段javascript代码去执行,如果str执行结果是一个值则返回此值,否则返回undefined。如果参数不是一个字符串,则直接返回该参数,实例如下:

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

在以上代码特别注意的是,最后一个语句是声明了一个对象,如果想返回此对象,则需要在对象外面再嵌套一层小括号,如下:


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

以上内容简单介绍了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()函数用法详解,希望大家喜欢。

 类似资料:
  • 本文向大家介绍详解python中eval函数的作用,包括了详解python中eval函数的作用的使用技巧和注意事项,需要的朋友参考一下 eval() 函数用来执行一个字符串表达式,并返回表达式的值。 eval函数功能:将字符串str当成有效的表达式来求值并返回计算结果。eval函数可以实现list、dict、tuple与str之间的转化 eval() 方法的语法: 参数: expression -

  • 本文向大家介绍详解python eval函数的妙用,包括了详解python eval函数的妙用的使用技巧和注意事项,需要的朋友参考一下 python eval函数功能:将字符串str当成有效的表达式来求值并返回计算结果。 函数定义: 将字符串str当成有效的表达式来求值并返回计算结果。globals和locals参数是可选的,如果提供了globals参数,那么它必须是dictionary类型;如果

  • eval函数与文本变量一起实现有力的文本宏工具。语句 eval(s) 用MATLAB的注释器求表达式的值或执行包含于文本字符串s的语句。 前一节的例子也可以在下面的代码中实现,虽然这有点低效率因为它用到完全注释器,而不只是函数调用。 for d = 1:31 s = ['load August' int2str(d) '.dat']; eval(s) % Process t

  • 本文向大家介绍Python中函数eval和ast.literal_eval的区别详解,包括了Python中函数eval和ast.literal_eval的区别详解的使用技巧和注意事项,需要的朋友参考一下 前言 众所周知在Python中,如果要将字符串型的list,tuple,dict转变成原有的类型呢? 这个时候你自然会想到eval. eval函数在python中做数据类型的转换还是很有用的。它的

  • 本文向大家介绍php 如何禁用eval() 函数实例详解,包括了php 如何禁用eval() 函数实例详解的使用技巧和注意事项,需要的朋友参考一下 php eval() 函数操作数组: 运行结果: 网上很多说使用disable_functions禁止掉eval的方法都是错误的! 其实eval()是无法用php.ini中的disable_functions禁止掉的 : because eval()

  • 本文向大家介绍JavaScript数组、json对象、eval()函数用法实例分析,包括了JavaScript数组、json对象、eval()函数用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript数组、json对象、eval()函数用法。分享给大家供大家参考,具体如下: 一、JavaScript中的数组 数组使用[]、new Array()或new Array

  • 本文向大家介绍Eval函数的作用相关面试题,主要包含被问及Eval函数的作用时的应答技巧和注意事项,需要的朋友参考一下 eval可以将字符串生成语句执行,一般执行动态的js语句。 eval的使用场合:有时候我们预先不知道要执行什么语句,只有当条件和参数给时才知道执行什么语句,这时候eval就派上用场了。

  • Python 内置函数 描述 eval() 函数用来执行一个字符串表达式,并返回表达式的值。 语法 以下是 eval() 方法的语法: eval(expression[, globals[, locals]]) 参数 expression -- 表达式。 globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。 locals -- 变量作用域,局部命名空间,如果被提供