學習小記:JS判斷時特殊值與boolean類型的轉換

來源:互聯網
上載者:User

標籤:empty   test   ...   一個   資料類型   boolean   類型比較   strong   func   

扒開JQuery以及其他一些JS架構源碼,常常能看到下面這樣的判斷,

寫慣了C#進階語言文法的我,一直以來沒能系統的理解透這段代碼。

var test; //do something...  if(test){   //do something...  }

 

此處就系統的記錄一下這個JS特殊值與boolean類型的轉換,測試代碼與結果如下

 window.onload = function () {            var minusNum = -1;            var zero = 0;            var one = 1;            var stringEmpty = ‘‘;            var stringNotEmpty = ‘111‘;            var objFunc = function () { };            console.group("JS中特殊值與bool的轉換");            undefined ? console.info("undefined is true") : console.info("undefined is false");            null ? console.info("null is true") : console.info("null is false");            minusNum ? console.info("負數 is true") : console.info("負數 is false");            zero ? console.info("zero(數字0) is true") : console.info("zero(數字0) is false");            stringNotEmpty ? console.info("stringNotEmpty is true") : console.info("stringNotEmpty is false");            stringEmpty ? console.info("stringEmpty is true") : console.info("stringEmpty is false");            objFunc ? console.info("objFunc is true") : console.info("objFunc is false");            NaN ? console.info("NaN is true") : console.info("NaN is false");            console.groupEnd();}

 

 

==和===的區別

判斷自然離不開==,同時引用記錄一下。原文:http://blog.sina.com.cn/s/blog_4b32835b01014iv9.html 

1、對於string,number等基礎類型,==和===是有區別的

  1)不同類型間比較,==之比較“轉化成同一類型後的值”看“值”是否相等,===如果類型不同,其結果就是不等

  2)同類型比較,直接進行“值”比較,兩者結果一樣

2、對於Array,Object等進階類型,==和===是沒有區別的

  進行“指標地址”比較

3、基礎類型與進階類型,==和===是有區別的

  1)對於==,將進階轉化為基礎類型,進行“值”比較

  2)因為類型不同,===結果為false

typeof和instanceof

1、typeof用於檢查變數的資料類型,返回一個字串。

  typeof 返回字串,有7種可能:"number"、"string"、"boolean"、"object"、"function"、"undefined" 、"symbol",

  typeof 檢查的變數是一個對象,或者是 Null,那它就會返回 object。

2、instanceof是為了看一個變數是否是某個對象的執行個體,返回一個布爾值。

  instanceof只能用來判斷對象和函數等物件類型,不能用來判斷字串和數字等基礎類型。

 

學習小記:JS判斷時特殊值與boolean類型的轉換

相關文章

聯繫我們

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