在MDN上测试JavaScript示例
我在这里找到了以下JavaScript示例: 为什么在MDN上测试JavaScript示例,javascript,firefox,google-chrome,Javascript,Firefox,Google Chrome,我在这里找到了以下JavaScript示例: 为什么console.log(myvar)返回“我的值”,而不是注释中指定的未定义的 我在Firefox和Chrome上进行了测试,得到了相同的结果 var myvar = "my value"; (function() { console.log(myvar); // undefined var myvar = "local value"; })(); 事实上,输出是未定义的。 我认为这是因为myvar在范围中被重新定义 但如
console.log(myvar)
返回“我的值”
,而不是注释中指定的未定义的
我在Firefox和Chrome上进行了测试,得到了相同的结果
var myvar = "my value";
(function() {
console.log(myvar); // undefined
var myvar = "local value";
})();
事实上,输出是未定义的。
我认为这是因为myvar在范围中被重新定义
但如果在函数范围中注释myvar,输出将是“我的值”。
就像myvar是一个全局变量一样
-->
事实上,输出是未定义的。
我认为这是因为myvar在范围中被重新定义
但如果在函数范围中注释myvar,输出将是“我的值”。
就像myvar是一个全局变量一样
-->它的小提琴,由xdazz创建,类似于您的帖子-> 在fiddle中,您不需要将
myvar
重新声明为局部变量,只需重置其值即可
它的小提琴,由xdazz创建,类似于你的帖子-> 在fiddle中,您不需要将
myvar
重新声明为局部变量,只需重置其值即可
你确定吗?在真正的页面(比如jsbin或JSFIDLE,或者您自己的测试页面)上测试这样的东西总是一个更好的主意,而不仅仅是在控制台上。也就是说,按照承诺将代码粘贴到我的Firefox控制台日志
undefined
。试试这个,它会输出“我的值”@mt22:当然。您将代码更改为删除var
。添加/删除关键字会更改行为。是否确定?在真正的页面(比如jsbin或JSFIDLE,或者您自己的测试页面)上测试这样的东西总是一个更好的主意,而不仅仅是在控制台上。也就是说,按照承诺将代码粘贴到我的Firefox控制台日志undefined
。试试这个,它会输出“我的值”@mt22:当然。您将代码更改为删除var
。添加/删除关键字会改变行为。
var myvar = "my value";
(function() {
console.log(myvar); // undefined
var myvar = "local value";
})();
var myvar = "local value";//redeclared variable as local
myvar = "local value";//reset global value