在JS中eval函数是什么意思

JavaScript027

在JS中eval函数是什么意思,第1张

它的功能是把对应的字符串解析成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

完全不要考虑浏览器JavaScript端的安全问题,一切安全性考虑都必须在服务端进行。

因为客户端的JavaScript纯凭自觉,只要有点技术背景的人都知道可以用Chrome、Firefox等浏览器的审查元素或开发者工具进行JavaScript注入。

所以在客户端JavaScript就不要考虑多少安全问题了,反正怎么约束也是不安全的所以eval也是可以用的。但是服务端的程序一定不要用eval类似物,很容易产生漏洞被利用攻击。