06 if 语句和逻辑运算
true 和 falsely
- truly 变量:
!!a === true的变量 - falsely 变量:
!!a ===false的变量
javascript
// 以下是 falsely 变量,除此之外都是 truly 变量
!!0 === false
!!NaN === false
!!'' === false
!!null === false
!!undefined === false
!!false === falseif 语句
- 在条件判断中,
if语句会自动调用 Boolean 函数将条件转为布尔值,再进行判断
js
if (1) {
console.log(1)
}
const a = 'abc'
if (a) {
console.log(a)
}
const b = true
if (b) {
console.log(b)
}
const c = {}
if (c) {
console.log(c)
}
const d = []
if (d) {
console.log(d)
}js
if (0) {
console.log(0)
}
const a = ''
if (a) {
console.log(a)
}
const b = false
if (b) {
console.log(b)
}
const c = null
if (c) {
console.log(c)
}
const d = undefined // 相当于 let d;
if (d) {
console.log(d)
}逻辑判断
||运算符,只要有一个操作数是 true,结果就是 true&&运算符,只有所有操作数都是 true,结果才是 true
javascript
const a = 1
const b = 0
console.log(a || b) // 1
console.log(b || a) // 1
console.log(a && b) // 0
console.log(b && a) // 0||运算符,如果第一个操作数是 falsely,则返回第二个操作数&&运算符,如果第一个操作数是 falsely,则返回第一个操作数
javascript
const a = 1
const b = 0
console.log(a || b) // 1
console.log(b || a) // 1
console.log(a && b) // 0
console.log(b && a) // 0javascript
consolee.log(0 || 'abc') // 'abc'
console.log('abc' || 0) // 'abc'
console.log(0 && 'abc') // 0
console.log('abc' && 0) // 0
console.log(10 && 0) // 0
console.log('' || 'abc') // 'abc'
console.log(!window.abc) // true