ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript コンソールが変数宣言に対して「未定義」を出力するのはなぜですか?
コンソールで var キーワードを使用して変数を宣言すると、「未定義」が出力されるのを見て驚く人もいるかもしれません
JavaScript では、var キーワードで変数を宣言しますが、明示的に値を代入しないと未定義のままになります。変数宣言ステートメントがコンソールで評価されると、結果は評価される式の値になります。この場合、これは未定義の変数です。
ただし、それは変数が割り当てを使用して宣言されている場合、出力される結果は割り当てられた値であることに注意してください。たとえば、var a = 5 は 5 を出力します。
var 宣言を処理するときのコンソールの動作は、JavaScript 評価モデルのセマンティクスまで遡ることができます。 ECMAScript 仕様によると:
var a; の場合、代入がないため、完了値は (normal、empty、empty) になります。したがって、評価結果は未定義です。
もう 1 つの興味深い観察は、関数宣言も (normal、empty、empty) を返すため、コンソールで評価されると unknown と出力されることです。ただし、関数が (function f() {}) のように式として宣言されている場合、結果は関数自体になります。この違いは、JavaScript における関数宣言と関数式の微妙な違いを浮き彫りにします。
以上がJavaScript コンソールが変数宣言に対して「未定義」を出力するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。