我有以下两个小脚本:
脚本 1:
eval("local = 3;");
console.log(typeof local);
Function("console.log(typeof local);")();
输出:
number
number
脚本 2:
eval("var local = 3;");
console.log(typeof local);
Function("console.log(typeof local);")();
输出:
number
undefined
是什么赋予了?无论传递的字符串是 avar local = 3
还是 a , eval 是否应该将 local 放在全局命名空间中local = 3
?如果是这种情况,Function(...)
在第二种情况下不应该发现本地的类型是数字而不是未定义吗?
编辑1:
我在 JSFiddle 中运行了这两个脚本,这就是我得到的结果。但是,当我在 JSFiddle 之外运行它们时,预期的结果会出现在两个输出为:
number
number