JS中eval的作用是什么

JavaScript04

JS中eval的作用是什么,第1张

eval()() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。

该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作任何改变地返回。因此不要为 eval() 函数传递 String 对象来作为参数。

如果试图覆盖 eval 属性或把 eval() 方法赋予另一个属性,并通过该属性调用它,则 ECMAScript 实现允许抛出一个 EvalError 异常。

<script type="text/javascript">

eval("x=10y=20document.write(x*y)")

document.write(eval("2+2"))

var x=10

document.write(eval(x+17))

</script>

/*

输出结果:

200

4

27

*/

它的功能是把对应的字符串解析成JS代码并运行

比如说你现在要运行一个可变的方法

function

name1(){……}

function

name2(){……}

var

m="name1"

eval(m+'()')//运行name1()

m='name2'

eval(m+'()')//运行name2()

eval说白了就是把一个字符串当程序语句来执行.比如:

var strObjName = "aaa "

这里aaa是字符串,不是对象,跟 是完全不一样的,那么有时候传参数的时候传不了对象,你只能把字符串传过去,但是你又要引用这个对象,就只能

obj = eval( "document.all. "+strObjName)

一般来讲你可以先把string拚好了再eval.

如:

sCommand = "obj = document.all. "+aaa

那么sCommand = "obj = document.all.aaa "

用eval的效果就是sCommand去掉前后引号的效果

即:

eval( "obj=document.all.aaaa ") == obj = document.all.aaa