eval("var a = 1;");
alert(a); //1
这样是可以的,但是要是在严格模式下,则不行。
"use strict";
eval("var b = 2;");
alert(b); //报错
但是实验了内容部是函数,或者json,在严格模式下也行,就变量是不行的,这是为啥?即便是去掉var也是不行,请大神分析下原因。
在书上只讲了 在严格模式下 如果在 eval 函数内声明变量,则不能在此函数外部使用该变量。
但是没具体讲为什么! 一般都很少使用严格模式 !
我实验了下,确实这样,感谢你的回答,貌似这个没有啥规律可循。
之前在函数总eval()发现也是产生的也是局部作用域。