网站首页 > 知识剖析 正文
1、eval方法只能在非严格模式中进行使用,在use strict中是不允许使用这个方法的。
2、eval函数接收一个参数s,如果s不是字符串,则直接返回s。否则执行s语句。如果s语句执行结果是一个值,则返回此值,否则返回undefined。 需要特别注意的是对象声明语法“{}”并不能返回一个值,需要用括号括起来才会返回值。如下:
var code1='"a" + 2'; //表达式
var code2='{a:2}'; //语句
alert(eval(code1)); //->'a2'
alert(eval(code2)); //->2
alert(eval('(' + code2 + ')')); //->[object Object]
当eval中的字符串内是对象时加上括号则可以将原对象原样返回,如果将code2={a:2,b:3}时直接eval(code2)时会报错,加上括号就会将code2原样返回。
3、eval直接在函数内部使用则返回的是局部变量
function te {
eval('var a=1;')
}
te;
alert(a);//这样会报错,因为a是局部变量,只能在te方法内使用
4、有两种的处理方式可以使在函数内部使用的eval成为全局变量
(1)利用window.eval使其成为全局的
function te {
window.eval(‘var a=1’)
a 变量也是全局的
(2) function te {
var a=eval;
a(‘var b=1’);
这种方式下变量b 也是全局的。
所以说在非严格的模式下,又多了一种方法将JSON字符串形式转换为对象的形式。就是利用var m=eval(‘(’+data+’)’),m是JSON对象。其功能和JSON.parse是相似的,但是当已经为通过JSON.parse转换为对象后的JSON不能再调用该函数继续进行转换,这样会报错,但是eval方法不会当传入字符串是对象使继续使用上述的方式,然会返回原对象。
猜你喜欢
- 2024-12-26 「前端开发」eval() 函数认知和学习以及注意事项
- 2024-12-26 详解JavaScript函数 javascript函数用法
- 2024-12-26 「瑞数」维普期刊JS逆向详细流程 瑞数js逆向
- 2024-12-26 干货 | 深度辨析 Python 的 eval() 与 exec()
- 2024-12-26 40道python二级考试真题火爆互联网,完整版答案解析为你保驾护航
- 2024-12-26 好程序员Python培训之详解eval好与坏
- 2024-12-26 深入理解JS:var、let、const的异同
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)