我们在写代码的时候经常会遇到空数组,空对象,null,undefined等这些值,瞬间有点不知所措,其实我们只需要把他们当做Boolean值即可,那么就变得简单了,
以下这些是假值:
• undefined
• null
• false
• 0和 NaN
• “”
假值的布尔强制类型转换结果为 false。从逻辑上说,假值列表以外的都应该是真值。
以下是几个实例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
let a = 0
console.log(a == false); //true
let b = 1
console.log(b == true); //true
let aa = null
console.log(aa == true); //false
let bb = undefined
console.log(bb == true); //false
// 空对象的值
let obj = {}
if (obj) {
console.log("空对象恒为true"); //空对象恒为true
}
// 空数组的值
let arr = []
if (arr) {
console.log("空数组恒为true"); //空数组恒为true
}
let qq = localStorage.getItem("to") || []
console.log(qq); //[] 因为本地中没有存储to的值,导致获取到的数据为undefined,
//由于undefined的值为fase,所以就继续向下看,所以值为一个[]
</script>
</body>
</html>