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にコメントすると、出力は「myvalue」になります。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 に答える