在js中主要的逻辑运算符有三个:
||(或), &&(与),!(非)
可以将多个表达式或者值放到一起来获取到一个最终的结果:
运算符 | 运算规则 | 范例 | 结果 |
&& | 与: 同时为真 | false && True | false |
|| | 或: 一个为真 | false or frue | true |
! | 非: 取反 | !false | true |
逻辑或(||)的本质
1.从左到右依次计算操作数
2.处理每一个操作数时 ,都将其转换为布尔值(Boolean)
3.对转换的boolean类型进行判断
(1)如果结果是ture,就停止计算,返回这个操作数的初始值
(2)如果是false,进行第二个运算元的判断
(3)依次类推
4.如果所有的操作数都被计算过(当所有结果都是false时),返回最后一个操作数(原始值)
//本质一: 多条件是如何进行判断的
const Score1 = 96
cosnt Score2 = 99
if (Score1 > 90 || Score2 > 90) {}
//Score1 > 90为ture,后续条件不执行
//本质二: 获取第一个有结果的值
const info = "ber"
const number = 123
const message = info || number || "我是默认值"
console.log(message)
console.log(message.length)
// 结果 ber 3,先输出ber
逻辑与(&&)的本质
1.从左到右依次计算操作数
2.处理每一个操作数时 ,都将其转换为布尔值(Boolean)
3.对转换的boolean类型进行判断
(1)如果结果是false,就停止计算,返回这个操作数的初始值(一般不需要取到初始值)
(2)如果是ture,进行第二个运算元的判断
(3)依次类推
4.如果所有的操作数都被计算过(当所有结果都是ture时),返回最后一个操作数(原始值)
const object = {
name: "coder",
son: {
name:"maber",
playing: function() {
console.log("play basketball")
}
}
}
//调用playing函数
//object.son.playing()
object && object.son && object.son.playing && object.son.playing()
// play basketball 返回最后一个ture的值
逻辑非(!)
逻辑非运算符接受一个参数
1.将其转换为布尔值(Boolean)
2.返回相反的值
3.俩个非运算!!有时候用来将某个值转化为布尔类型
(1)第一个非运算将该值转为布尔类型并取反,第二个非运算再次取反
(2)最后我们就得到一个任意值到布尔值的转化