2013-02-14 224 views
1

什麼var myvar有什麼區別;和var myvar = null;?

var myvar; 

var myvar = null; 

之間的區別?

我剛看到這兩個毗鄰未來專業代碼,不知道這是怎麼一回事......

+2

簡單地說:'VAR MYVAR;'只是聲明的變量,但變量仍是'undefined'。另一方面,'var myvar = null;'將'myvar'設置爲'null'。 – voithos 2013-02-14 17:15:50

+2

['undefined'](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/undefined)和['null'](https://developer.mozilla.org/en- US/docs/JavaScript/Reference/Global_Objects/null)是不同的東西。 – VisioN 2013-02-14 17:18:14

回答

5

一個創建myvar(在當前範圍內),並分配沒有價值給它(離開它=== undefined) 。

另一個也給它分配null

null的賦值可能很重要,這取決於其他代碼如何與變量交互。 OTOH,可能是因爲缺乏對它意味着什麼的理解。

+0

跟進:你可以設置一個變量爲未定義? – 2013-02-14 17:18:14

+0

是的,你可以。 'undefined'是全局作用域的屬性,默認保持'undefined'原語。 – Quentin 2013-02-14 17:19:23

+0

甜 - TYVM!我一直在暗示堅持! – 2013-02-14 17:20:41

0

如果您嘗試var myvar;您已將myvar定義爲undefined這意味着它只是未分配一個值。

但是當你嘗試var myvar = null;您分配了null文本myvar,這意味着變量表示空,空,或不存在的參考。

+1

請注意,除非您使用'===',否則您可能不會注意到區別; 'null'和'undefined'大致相等。但是會有一些關心的代碼。 – cHao 2013-02-14 17:27:44

+0

@cHao,是的,這是真的比較。提示代表好的提示。 – Ramin 2013-02-14 17:32:55

0

我更喜歡使用var myvar = null;

爲什麼?

如果我正在檢查將來是否設置了該值,則表示它尚未設置,其中undefined表示在嘗試在代碼中的某處設置myvar時可能存在錯誤。

下面有一些其他的意見,以及 - What reason is there to use null instead of undefined in JavaScript?

+0

'undefined'表示尚未設置值;它基本上意味着「我不知道」,如果你沒有指定一個值,那就是你所得到的。 'null'表示值已設置,但明確設置爲空。至於不知道你的值是否被賦值......如果你知道某個錯誤是否阻止了設置值,那麼你可能會遇到太多的異常。 :P我從來沒有遇到過這樣的問題。 – cHao 2013-02-14 19:04:51

相關問題