在MDN上测试JavaScript示例

时间:2012-09-29 12:45:39

标签: javascript firefox google-chrome

我在这里找到了以下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中测试了它,我得到了相同的结果。

2 个答案:

答案 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