# 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