首頁 >web前端 >js教程 >javascript中2個感嘆號的用法實例詳解_javascript技巧

javascript中2個感嘆號的用法實例詳解_javascript技巧

WBOY
WBOY原創
2016-05-16 16:37:091384瀏覽

在javascript程式碼中常常會見到!!的情況,本文即以實例形式較為深入的分析javascript中2個感嘆號的用法。分享給大家參考之用。具體分析如下:

javascript中的!!是邏輯"非非",即是在邏輯「非」的基礎上再"非"一次。通過!或!!可以將很多類型轉換成bool類型,再做其它判斷。

一、應用場景:判斷一個物件是否存在

假設有這樣一個json物件:

{ color: "#E3E3E3", "font-weight": "bold" }

需要判斷是否存在,用!!再好不過。

如果僅僅打印對象,無法判斷是否存在:

var temp = { color: "#A60000", "font-weight": "bold" };
alert(temp);

結果:[object: Object]

如果json物件實作!或!!,就可以判斷該json物件是否存在:

var temp = { color: "#A60000", "font-weight": "bold" };
alert(!temp);

結果:false

var temp = { color: "#A60000", "font-weight": "bold" };
alert(!!temp);

結果:true

二、透過!或!!把各種型別轉換成bool型的慣例

1.對null的"非"回傳true

var temp = null;
alert(temp); 

結果:null

var temp = null;
alert(!temp); 

結果:true

var temp = null;
alert(!!temp); 

結果:false

2.對undefined的"非"回傳true

var temp;
alert(temp);

結果:undefined

var temp;
alert(!temp);

結果:true

var temp;
alert(!!temp);

結果:false

3.對空字串的"非"回傳true

var temp="";
alert(temp);

結果:空

var temp="";
alert(!temp);

結果:true

var temp="";
alert(!!temp);

結果:false

4.對非零整型的"非"回傳false

var temp=1;
alert(temp);

結果:1

var temp=1;
alert(!temp);

結果:false

var temp=1;
alert(!!temp);

結果:true

5.對0的"非"回傳true

var temp = 0;
alert(temp);

結果:0

var temp = 0;
alert(!temp);

結果:true

var temp = 0;
alert(!!temp);

結果:false

6.對字串的"非"回傳false

var temp="ab";
alert(temp);

結果:ab

var temp="ab";
alert(!temp);

結果:false

var temp="ab";
alert(!!temp);

結果:true

7.對陣列的"非"回傳false

var temp=[1,2];
alert(temp);

結果:1,2

var temp=[1,2];
alert(!temp);

結果:false

var temp=[1,2];
alert(!!temp);

結果:true

相信本文所述對大家的javascript程式設計的學習有一定的借鏡價值。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn