JavaScript的null和undefined區別樣本介紹

來源:互聯網
上載者:User

JavaScript的null和undefined區別樣本介紹

 先說說undefined:

Javascript中的變數是弱類型的, 所以聲明變數的時候只需使用var關鍵字即可。如果是像C這樣的強型別語言, 聲明變數的時候如果沒有指定初始值,那麼會給他一個預設值,比如int變數的預設值是0。但是在Javascript這樣的弱類型語言中,沒有辦法確定到底該給這樣的變數一個什麼樣的預設值,比如我聲明一個變數

var v1;

是給他false還是0,或者是'' ?

因為沒有類型,所以無法確定。 在Javascript中對於這種生命後沒有給定初始值的變數,就給他一個undefined。不過前提是這個變數必須已經聲明,如果對於沒有聲明過的標識符,就會出錯。看看下面的代碼。

vo="vo";//不使用var關鍵字建立的是全域變數,如果不賦值會報錯,如下
//v1;//會報錯
var v2;//undeifned
var v3="";//null
alert(vo);
//alert(v1);//
alert(v2);
alert(v3);

再來說說null:

Javscript有幾個基本類型,Number,String,Boolean,Object。對於Object 類型的變數,他有兩種情況,一種是他是一個對象的執行個體,另一種他是一個Null 參考null,熟悉類似Java這樣物件導向語言的朋友應該很容易理解。對於這兩種情況,他們的類型都是Object。Javascript中的變數,在給他賦值的時候,才
會確定它的類型,比如下面這樣。

代碼如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

var v1 = 1; 

var v2 = true; 

  

alert(typeof v1); //number 

alert(typeof v2); //boolean 

  

v2 = new Date(); 

alert(typeof v2); //object 

  

v2 = "str"; 

alert(typeof v2); //string 

  

v2 = null; 

alert(typeof v2); //object

可以看到,null在 Javascript中代表一個特殊的Object類型的值,他用來表示Null 參考的概念,如果要將一個標識符聲明稱object類型,但是暫時不給他執行個體,那麼就可以將它先初始化為null,以便以後使用。
不一定絕對正確,簡單來說,對於所有變數,只要聲明後還沒有指定初始值 ,那麼他就是undefined,如果是Object類型用來表示Null 參考的概念,那麼就是用null來表示。

下面是一些補充:

null :表示無值;
undefined : 表示一個未聲明的變數,或已聲明但沒有賦值的變數,或一個並不存在的對象屬性。==運算子將兩者看作相等。如果要區分兩者,要使用===或typeof運算子。使用if (!object){}兩者就都包含了 。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.