2016-08-18 4 views
-4

ケース1 - 私が変数宣言の前にconsole.log(変数)を定義していない場合。例えば;javascript変数の奇妙な振る舞い

// code 
    console.log(a); 
    var a ; 

    // output 
    undefined 

ケース2は - 私は変数宣言せずに(変数)にconsole.log場合は私がキャッチされないのReferenceErrorを取得する:変数が定義されていません。

しかし、関数を定義すると、関数定義の前後で関数を呼び出すことはできません。例えば;

console.log(example()); 

    function example(){ 
    return 'test done'; 
    } 
    console.log(example()); 

// output without any issue 

今、私の質問は、未定義と定義されていないの違いは何です。

+0

答えを自動的に取得するには、より多くのリサーチを行い、Googleを使用してください。 –

+1

'var'と' function'宣言が呼び出されます。 JSへようこそ。 – zzzzBov

+0

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/var "hoisting"を検索 –

答えて

5

未定義 - 変数は存在しますが、変数には値がありません。 未定義 - 変数が宣言されていない(存在しない)。