-7

質問: 巻き上げた後のバーの値は?

var bar = function() {
return 3;
};

私が思う:関数式。私が間違っている?

4

3 に答える 3

4

試してみませんか?

var bar = function() {
    return 3;
 };

console.log(bar);

出力、

  function () {
    return 3;
  }
于 2013-04-05T17:37:26.733 に答える
0

未定義の変数を使用しようとすると、もちろん参照エラーがスローされます。未定義の変数に割り当てようとすると、グローバル変数が作成されます (Web ページでは、書き込みとほぼ同じwindow.foo = bar;です)。ただし、変数は作成されるまで未定義のままです。

constただし、 orを使用してローカル変数を宣言するvarと、関数の最初から値を持つものとして定義されるundefinedため、「早い段階で」変数にアクセスしても参照エラーはスローされず、それを設定するとローカル値が設定されます。関数の開始時に変数を宣言する必要はありません。宣言は関数のスコープに引き上げられます。

比較すると、ES6 では、 を使用して変数を宣言するletと、ブロックの先頭にのみ巻き上げられます。

また、 を使用して「変数」を宣言するfunctionと、その値も巻き上げられるため、宣言の前に関数を呼び出すことができます。(ただし、関数は同じスクリプト内にある必要があります。)

于 2013-04-06T12:56:11.480 に答える
0

まさに機能。そうです、あなたは正しいです。

于 2013-04-05T17:38:15.593 に答える