uniapp开发

js隐式转换,js常见的数据类型转布尔,字符串转布尔值,null

2023-02-02  本文已影响0人  霖深雾起不见你

常见的数据类型转布尔

0和NaN      false   其他Number类型为true
undefined   false
null        false
''          false   非空String类型为true,空string为false
{}          true    注意:空对象和非空对象都为true
[]          true    注意:空数组和非空数组都为true
[].length   0       不会报错,
null.length         会报错
undefined.length    会报错
// 非空数组数据结构示例
let obj = {
    testArr: [1,2,3,4,5],
    testObj: {age: 15},
}
if(obj.testArr.length > 0) {
 // 运行正常,不会报错   
}
// 空数组数据结构示例
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
}

假如接口返回的数据结构如上obj,其中某个array类型的字段(testArr)有可能为null的情况直接用obj.testArr.length > 0会报错
if(obj.testArr.length > 0) {

}
可以用下面代码优化,如果obj.testArr为null或者undefined直接判断为false
if(!!obj.testArr && obj.testArr.length > 0) {

}

上一篇下一篇

猜你喜欢

热点阅读