Skip to content

颠覆认知的JavaScript

基本语法、规范、错误、运算符、判断分支、注释

关于 &&||

只要 && 左边的表达式是true,就会一直往右走,直到最后,然后输出最后的表达式的值

遇到 false 输出当前表达式的值,然后中止执行

js
console.log(1 && 2 && 3) // 3
console.log(0 && 1 && 2) // 0
console.log(1 && 2 && 3) // 3
console.log(0 && 1 && 2) // 0

应用:简化 if else

js
if (1) {
    console.log(2)
}
// 等价于
1 && console.log(2)
if (1) {
    console.log(2)
}
// 等价于
1 && console.log(2)

只要 || 左边的表达式是false,就会一直往右走,直到最后,然后输出最后的表达式的值

遇到 true 输出当前表达式的值,然后中止执行

js
console.log(1 || 2 || 3) // 1
console.log(0 || 1 || 2) // 1
console.log(1 || 2 || 3) // 1
console.log(0 || 1 || 2) // 1

应用:给变量赋默认值(本质也是简化 if else)

js
function getName(name) {
    // 1、不确定 name 是不是一个有意义的值
    // 2、对于 || 来说,无意义的值包括:0、''、false、null、undefined、NaN
    // 3、等价于 if(!name) myName = '马牛逼'
    const myName = name || '马牛逼'
    return myName
}
getName(0) // '马牛逼'
function getName(name) {
    // 1、不确定 name 是不是一个有意义的值
    // 2、对于 || 来说,无意义的值包括:0、''、false、null、undefined、NaN
    // 3、等价于 if(!name) myName = '马牛逼'
    const myName = name || '马牛逼'
    return myName
}
getName(0) // '马牛逼'

用心去做高质量的专业前端内容网站,欢迎 star ⭐ 让更多人发现