js隱式轉(zhuǎn)換,js常見的數(shù)據(jù)類型轉(zhuǎn)布爾,字符串轉(zhuǎn)布爾值,null、undefined是true還是false?null、undefined轉(zhuǎn)布爾值

常見的數(shù)據(jù)類型轉(zhuǎn)布爾

0和NaN      false   其他Number類型為true
undefined   false
null        false
''          false   非空String類型為true,空string為false
{}          true    注意:空對象和非空對象都為true
[]          true    注意:空數(shù)組和非空數(shù)組都為true
[].length   0       不會報錯,
null.length         會報錯
undefined.length    會報錯
// 非空數(shù)組數(shù)據(jù)結(jié)構(gòu)示例
let obj = {
    testArr: [1,2,3,4,5],
    testObj: {age: 15},
}
if(obj.testArr.length > 0) {
 // 運行正常,不會報錯   
}
// 空數(shù)組數(shù)據(jù)結(jié)構(gòu)示例
let obj = {
    testArr: null,
    testObj: {age: 15},
}
if(obj.testArr.length > 0) {
 //     會提示類似報錯 Uncaught TypeError: Cannot read properties of null (reading 'length') at <anonymous>:1:6
}

假如接口返回的數(shù)據(jù)結(jié)構(gòu)如上obj,其中某個array類型的字段(testArr)有可能為null的情況直接用obj.testArr.length > 0會報錯
if(obj.testArr.length > 0) {

}
可以用下面代碼優(yōu)化,如果obj.testArr為null或者undefined直接判斷為false
if(!!obj.testArr && obj.testArr.length > 0) {

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容