JS判斷時特殊值與boolean型別的轉換

2022-02-06 12:00:57 字數 1786 閱讀 3820

扒開jquery以及其他一些js框架原始碼,常常能看到下面這樣的判斷,寫慣了c#高階語言語法的我,一直以來沒能系統的理解透這段**。

var

test; //

do something...

if(test)

此處就系統的記錄一下這個js特殊值與boolean型別的轉換,測試**與結果如下

window.onload = 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");

判斷自然離不開==,同時引用記錄一下。原文: 

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

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

2)同型別比較,直接進行「值」比較,兩者結果一樣

2、對於array,object等高階型別,==和===是沒有區別的

進行「指標位址」比較

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

1)對於==,將高階轉化為基礎型別,進行「值」比較

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

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

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

typeof 檢查的變數是乙個物件,或者是 null,那它就會返回 object。

2、instanceof是為了看乙個變數是否是某個物件的例項,返回乙個布林值。

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

JS 判斷空值

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

JS 判斷是否為數字 數字型特殊值

isnan x x是數字型的時候 也就是它不是非數字 它的返回值為 false x是非數字型的時候 它的返回值為 true 用來判斷乙個變數是否為非數字的型別,返回 true 或者 false var usrage 21 console.log isnan userage false 21 不是乙個...

JS的邏輯判斷值

我們經常在做邏輯判定時會根據判定值的布林型別來區分操作,即如果是 則 不然則 的邏輯語境,但由於js的弱型別特性,它可以利用不同型別的值來替代布林值。如 if false if if undefined if null if 0 效果相同。但是,這裡面又有哪些陷阱呢?這些值中 0 false tru...