我在这里找到了以下JavaScript示例:
https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Values,_variables,_and_literals
/**
* Example 2
*/
// will return a value of undefined
var myvar = "my value";
(function() {
console.log(myvar); // undefined
var myvar = "local value";
})();
为什么console.log(myvar)
会在评论中指定"my value"
而不是undefined
?
我在Firefox和Chrome中测试了它,我得到了相同的结果。
答案 0 :(得分:4)
var myvar = "my value";
(function() {
console.log(myvar); // undefined
var myvar = "local value";
})();
确实,输出未定义。 我认为这是因为myvar在范围内被重新定义。
但是如果你在函数范围内注释myvar,输出将是“我的值”。 就像myvar是一个全局变量一样。
- > Try !
答案 1 :(得分:1)
它的小提琴,由 xdazz 创建,类似于你的帖子 - > local variable declaration
在您的小提琴中,您不会将myvar
重新声明为局部变量,只需重置其值即可
global variable change value
var myvar = "local value";//redeclared variable as local
myvar = "local value";//reset global value