1

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

4

2 回答 2

4
var myvar = "my value";

(function() {
  console.log(myvar); // undefined   
  var myvar = "local value";
})();​

实际上,输出是未定义的。我认为这是因为 myvar 在范围内重新定义了。

但是,如果您在函数范围内注释 myvar,则输出将是“我的值”。就像 myvar 是一个全局变量一样。

-->试试!

于 2012-09-29T12:59:23.087 回答
1

它的小提琴,由xdazz创建,类似于您的帖子->局部变量声明

在您的小提琴中,您不会重新声明myvar为局部变量,只需重置其值 全局变量更改值

var myvar = "local value";//redeclared variable as local
myvar = "local value";//reset global value
于 2012-09-29T13:23:40.357 回答