2016-08-18 59 views
-4

案例1 - 如果我在變量聲明前的console.log(variable)變量未定義。例如;javascript變量的怪異行爲

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

    // output 
    undefined 

案例2 - 如果我CONSOLE.LOG(變量)沒有變量聲明,我得到未捕獲的ReferenceError:變量沒有定義。

// code 
console.log(a); 

// output 
Uncaught ReferenceError: a is not defined 

但櫃面的功能,我們可以調用一個函數它從來沒有給任何問題之前或之後的函數定義。例如;現在

console.log(example()); 

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

// output without any issue 

我的問題是,什麼是不確定沒有定義之間的差異。

+0

請做更多的研究和谷歌周圍它自動得到答案:) –

+1

'var'和'function'聲明被懸掛。歡迎來到JS。 – zzzzBov

+0

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/var搜索「提升」 –

回答

5

未定義的手段 - 變量存在,但沒有任何存儲值。 未定義表示 - 變量未聲明(不存在)。