JS的邏輯判斷值

2022-05-02 12:48:09 字數 717 閱讀 8117

我們經常在做邏輯判定時會根據判定值的布林型別來區分操作,即如果是··則··,不然則··的邏輯語境,但由於js的弱型別特性,它可以利用不同型別的值來替代布林值。如:

if(!false){}, 

if(!""){},

if(!undefined){},

if(!null){},

if(!0){}

效果相同。

但是,這裡面又有哪些陷阱呢?

這些值中

0 == false    //true

"" == false //true

"" == 0 //true

false == undefined //false

false == null //false

null == undefined //true

從上面我們可以看出,雖然 0/false/「」/null/undefined 可以充當相同的布林角色,但是它們卻不能在值上相等。只有 0,false,""值相等,undefined與null值相等,其他不相等。

這裡在js執行時的認定機制我也不是特別清楚,我大概知道js在這裡做了一些不嚴謹的型別轉換,所有的值都會被轉換為兩個值 : false 與true,再執行**。

由於if語句經常用到,這幾種情況還是記下來比較好。

JS 判斷空值

1 typeof用法 typeof的運算數未定義,返回的就是 undefined 運算數為數字 typeof x number 字串 typeof x string 布林值 typeof x boolean 物件,陣列 和 null typeof x object 函式 typeof x funct...

JS 邏輯判斷選擇器

與 在js裡與其它語言不一樣,這是選擇器運算子,而非邏輯運算子。對於 來說,若判斷為true,則返回第乙個值,為false返回第二個值。相反,若判斷為 true,則返回第二個,為 false為返回第乙個值。絕對不是像其它語言那樣返回true或false,而是會返回第乙個值或第二個值。簡單的測試 如下...

JS教程 邏輯分支(判斷語句)

語法 if 判斷條件 else 條件為真,執行if,條件為假,執行else if 只需要布林值 所以if判斷時,會把 內所有資料型別先隱式轉換成布林型 if 中,非零數字都會轉成true,非空字元都會轉成true 語法 switch switch 內,不會做判斷,在case身上判斷這個值是否符合 判...