Skip to content

06 if 语句和逻辑运算

true 和 falsely

  • truly 变量:!!a === true 的变量
  • falsely 变量:!!a ===false 的变量
javascript
// 以下是 falsely 变量,除此之外都是 truly 变量
!!0 === false
!!NaN === false
!!'' === false
!!null === false
!!undefined === false
!!false === false

if 语句

  • 在条件判断中,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) // 0

javascript
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