首页新闻找找看学习计划

关于eval()的一个奇怪现象

0
[已解决问题] 解决于 2017-02-04 19:06

eval("var a = 1;");

alert(a);    //1

这样是可以的,但是要是在严格模式下,则不行。

"use strict";

eval("var b = 2;");

alert(b);    //报错

但是实验了内容部是函数,或者json,在严格模式下也行,就变量是不行的,这是为啥?即便是去掉var也是不行,请大神分析下原因。

流炎飞雪的主页 流炎飞雪 | 初学一级 | 园豆:6
提问于:2017-02-03 23:20
< >
分享
最佳答案
0

在书上只讲了 在严格模式下 如果在 eval 函数内声明变量,则不能在此函数外部使用该变量。

但是没具体讲为什么! 一般都很少使用严格模式 !

奖励园豆:5
狂扁小朋友 | 初学一级 |园豆:28 | 2017-02-04 00:56

我实验了下,确实这样,感谢你的回答,貌似这个没有啥规律可循。

之前在函数总eval()发现也是产生的也是局部作用域。

流炎飞雪 | 园豆:6 (初学一级) | 2017-02-04 18:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册