JavaScript中有 6 种值为“假”,其他都为真
js
false // (布尔型)
null // (用于定义空的或者不存在的引用)
undefined // (未定义值)
0 // (数值型)
"" '' // (空字符串) (字符型)
NaN //false // (布尔型)
null // (用于定义空的或者不存在的引用)
undefined // (未定义值)
0 // (数值型)
"" '' // (空字符串) (字符型)
NaN //虽然这六个值都为“假”,它们之间并非都相等
js
console.log( false == null ) // false
console.log( false == undefined ) // false
console.log( false == 0 ) // true
console.log( false == '' ) // true
console.log( false == NaN ) // false
console.log( null == undefined ) // true
console.log( null == 0 ) // false
console.log( null == '' ) // false
console.log( null == NaN ) // false
console.log( undefined == 0) // false
console.log( undefined == '') // false
console.log( undefined == NaN) // false
console.log( 0 == '' ) // true
console.log( 0 == NaN ) // falseconsole.log( false == null ) // false
console.log( false == undefined ) // false
console.log( false == 0 ) // true
console.log( false == '' ) // true
console.log( false == NaN ) // false
console.log( null == undefined ) // true
console.log( null == 0 ) // false
console.log( null == '' ) // false
console.log( null == NaN ) // false
console.log( undefined == 0) // false
console.log( undefined == '') // false
console.log( undefined == NaN) // false
console.log( 0 == '' ) // true
console.log( 0 == NaN ) // false- false 除了和自身比较为 true 外,和 0,"" 比较也为 true
- null 只和 undefined 比较时为 true, 反过来 undefined 也仅和 null 比较为 true,没有第二个
- 0 除了和 false 比较为 true,还有空字符串 ''" 和空数组 []比较也为true
- 空字符串 '' 除了和 false 比较为 true,还有一个数字 0
封装假值判断
js
function jsTrue(val) {
if (val === '') return false
else if (val === 0) return true
else if (Object.is(val, NaN)) return false
else if (val === 'NaN') return false
else if (!val) return false
else return true
}function jsTrue(val) {
if (val === '') return false
else if (val === 0) return true
else if (Object.is(val, NaN)) return false
else if (val === 'NaN') return false
else if (!val) return false
else return true
}封装undefined、null、NaN的判断函数
js
// 方法一
var a=undefined;
if (typeof(a) == "undefined"){
console.log("undefined");
}
// 方法二
var a=undefined;
if(a === undefined){
console.log("undefined")
}// 方法一
var a=undefined;
if (typeof(a) == "undefined"){
console.log("undefined");
}
// 方法二
var a=undefined;
if(a === undefined){
console.log("undefined")
}判断对象为空
js
// 方法一
var e={}
if(Object.keys(e).length === 0){
console.log("{}")
}
// 方法二
var e={};
if(JSON.stringify(e) == "{}"){
console.log("{}")
}// 方法一
var e={}
if(Object.keys(e).length === 0){
console.log("{}")
}
// 方法二
var e={};
if(JSON.stringify(e) == "{}"){
console.log("{}")
}JS提供的判断方法
js
Object.is(val, NaN)
val === NaN
typeof(val) == 'NaN'Object.is(val, NaN)
val === NaN
typeof(val) == 'NaN'
liang14658fox