Javascript基礎教程之比較null和undefined值_javascript技巧

來源:互聯網
上載者:User

JavaScript 中有兩個特數值: undefined和null,在比較它們的時候需要留心。在讀取未賦值的變數或試圖讀取對象沒有的屬性時得到的就是 undefined 值。

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Learn4UndefinedAndNull</title></head><body><script>var myData = {name:"Luka",weather:"sunny"};document.writeln("Prop: "+myData.doesntexits);</script></body></html> 

輸出結果:

Prop: undefined

Javascript 又定義了一個特殊值 null ,這個值與 undefined 略有不同。後者是在未定義值得情況下得到的值,而前者則用於表示已經賦了一個值但該值不是一個有效 object、string、number 或 boolean 值(也就是說所定義的是一個無值[no value])。

下面代碼先後使用 undefined 和 null 以展示其不同效果:

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Learn4UndefinedAndNull</title></head><body><script>var myData = {name:"Luka"};//讀取 weather 屬性document.writeln("Var: "+myData.weather+"<br />");//判斷對象是否具有 weather 這個屬性document.writeln("Prop: "+("weather" in myData)+"<br /><br />");myData.weather = "sunny";document.writeln("Var: "+myData.weather+"<br />");document.writeln("Prop: "+("weather" in myData)+"<br /><br />");myData.weather = null;document.writeln("Var: "+myData.weather+"<br />");document.writeln("Prop: "+("weather" in myData)+"<br /><br />");</script></body></html> 

輸出結果:

Var: undefined
Prop: false
Var: sunny
Prop: true
Var: null
Prop: true

1. 檢查變數或屬性是否為undefined 或 null

如果想檢查某屬性是否為 null 或 undefined(不管是哪一個),那麼只要使用 if 語句和邏輯非運算子(!)即可。

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Learn4UndefinedAndNull</title></head><body><script>var myData = {name:"Luka",city:null};if(!myData.name){document.writeln("name is null or undefined <br /><br />");}else {document.writeln("name is not null or undefined <br /><br />")}if(!myData.city){document.writeln("city is null or undefined <br /><br />");}else {document.writeln("city is not null or undefined <br /><br />")}if(!myData.weather){document.writeln("weather is null or undefined <br /><br />");}else {document.writeln("weather is not null or undefined <br /><br />")}</script></body></html> 

輸出結果:

name is not null or undefined
city is null or undefined
weather is null or undefined

2. 區分 null 和 undefined

在比較兩個值時,所用辦法應視需要而定。如果想同等對待 undefined值和null值,那麼應該使用相等運算子(==),讓 Javascript 進行類型轉換。此時值為 undefined 的變數會被認為與值為 null 的變數相等。如果要區分 null 和 undefined,則應使用等同運算子(===)。

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Learn4UndefinedAndNull</title></head><body><script>var firstVal = null;var secondVal;var equality = firstVal == secondVal;var identity = firstVal === secondVal;document.writeln("Equality: "+equality+" <br />");document.writeln("Identity: "+identity+" <br />");</script></body></html> 

輸出結果:

Equality: true
Identity: false

以上內容是小編給大家介紹的js基礎教程之比較null和undefined值的相關知識,希望對大家有所協助!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.