Javascript 中關於if(xx)和 x==y的判斷

來源:互聯網
上載者:User

標籤:efi   重寫   種類   array   運算   說明   string   width   理論   

 

Javascript 中關於if(xx)和 x==y的判斷是非常基礎但卻十分重要的內容,以下是筆者學習的一些總結:

1、if(xx)的判斷:

在if(xx)的判斷中,括弧裡的內容會強制轉換會布爾類型,結果為true則後面語句執行,為false則不執行。在此注意一條就可以了:對於括弧裡的運算式,會被強制轉換為布爾類型.

如何強制轉換呢?規則如下:

 

舉幾個栗子,如下代碼輸出什麼?

A:

if ("hello") {

console.log("hello")

}

括弧裡的字串會強制轉換為布爾類型,結果為true,後面語句執行,結果輸出hello.

B: if ("") {

console.log(‘empty‘)

}

括弧裡是個Null 字元串,轉換為false,後面語句不執行。

C: if (" ") {

console.log(‘blank‘)

}

括弧裡像一個Null 字元串,但其實不是,它裡面有空格,所以它是空白字串,轉換為true,後面語句執行,結果輸出blank。

D:

if ([0]) {

console.log(‘array‘)

}

 

括弧裡是個對象,轉換為true,後面語句執行,結果輸出array。

E:

if (‘0.00‘) {

console.log(‘0.00‘)

}

括弧裡是字串,轉換為true,後面語句執行,結果輸出0.00

 

2、a==b的判斷

首先,我們知道:

JS中的值有兩種類型:原始類型(Primitive)、物件類型(Object)。

基本類型包括:Undefined、Null、Boolean、Number和String等五種。

Undefined類型和Null類型的都只有一個值,即undefined和null;Boolean類型有兩個值:true和false;Number類型的值有很多很多;String類型的值理論上有無數個。

所有對象都有valueOf()和toString()方法,它們繼承自Object,當然也可能被子類重寫。

運算式: X == Y

其中X和Y是上述六種類型中某一種類型的值,當X和Y的類型相同時,X==Y可以轉化為X===Y。

其他類型情況就多了,以圖來說明:

 

 

圖1中,

當布爾值與其他類型的值作比較時,布爾值會轉化為數字

             true -> 1             false -> 0
N表示ToNumber操作,即將運算元轉為數字。

 

       P表示ToPrimitive操作,即將運算元轉為原始類型的值。對於 Object 類型,先嘗試調用 .valueOf 方法擷取結果。

如果沒定義,再嘗試調用 .toString方法擷取結果

        我們把Undefined和Null用不確定的、沒有的或者空的部分來描述,把Boolean、Number、String和Object用存在的、確實

的、有和非空的部分來描述。    那這兩個部分中的任何值做==運算,結果當然都是false。 undefined和null同屬於一個部分,

它們做= =運算自然為true. 所以undefined == null,結果是true。且它倆與所有其他值比較的結果都是false。

可以看出在類型轉換的過程中,有向數字number轉換的方向:

        String == Boolean,需要兩個運算元同時轉為Number。

        String/Boolean == Number,需要String/Boolean轉為Number。

        Object == Primitive,需要Object轉為Primitive(具體通過valueOf和toString方法)

 

 

暫時先寫到這裡了,有點粗糙,以後複習時再加工,有不對之處歡迎批評指正。

 

Javascript 中關於if(xx)和 x==y的判斷

聯繫我們

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