# node中直接使用变量做为判断依据

# 测试用代码

// testvar.js 运行 node testvar进行测试 a为要测试变量值
let a;
console.log({a})
if(a){
    console.log('直接判断为 true')
}else{
    console.log('直接判断为 false')
}
if(!a){
    console.log('取反判断为 true')
}else{
    console.log('取反判断为 false')
}

# 测试结果统计

变量定义 console.log({a}) if(a) if(!a)
let a { a: undefined } false true
let a='' { a: '' } false true
let a=null { a: null } false true
let a=true { a: true } true false
let a=false { a: false } false true
let a='张三' { a: '张三' } true false
let a=1 { a: 1 } true false
let a=0 { a: 0 } false true
let a=-1 { a: -1 } true false
let a={} { a: {} } true false
let a=[] { a: [] } true false

因为 !变量名 得到的结果为逻辑值 测试程序也可以写成这样:

// testvar.js 运行 node testvar进行测试 a为要测试变量值
let a;
console.log({a})
console.log('直接判断为:',!!a)
console.log('取反判断为:',!a)

!a !!a均为逻辑值,也可用于简化return语句,如下面代码:

// 我们希望 name有值的时候返回true name为null或空值时返回 false
let a = '张三'
return !!a  //返回 true
Last Updated: 2022/11/13 12:30:47