js 通过感叹号判断变量是否有值

js 通过感叹号判断变量是否有值

空字符串 是false

console.clear();
var a='';
console.log('a:'+a);
if(!a){
 console.error('a is null'); 
}else{
 console.log('a has value'); 
}

运行结果:
js 通过感叹号判断变量是否有值_第1张图片

空格是true

js 通过感叹号判断变量是否有值_第2张图片

数字0是false

var a=0;
console.log('a:'+a);
if(!a){
 console.error('a is null'); 
}else{
 console.log('a has value'); 
}

运行结果:
js 通过感叹号判断变量是否有值_第3张图片

什么情况下会打印a is null

  1. 值为undefined;
  2. 值为null
  3. 值为空字符串
  4. 值为数字0
  5. 值为false
  6. 值为String(”)
    js 通过感叹号判断变量是否有值_第4张图片
    js 通过感叹号判断变量是否有值_第5张图片

延伸

既然0 是false,那么可以判断数组是否为空
js 通过感叹号判断变量是否有值_第6张图片
优化为:

 if (titleList.length) {//titleList.length>0
                if (titleList.length == 1 && titleList[0] == val) {
                    hideTitleDropdownBox();
                } else {
                    this.renderInvoiceCompList(titleList, true);
                }
            } else {//发票没有匹配的就是不显示下拉列表
                hideTitleDropdownBox();
            }

你可能感兴趣的:(javascrpit)