JavaScript学习系列博客_7_JavaScript中的逻辑运算符、三元运算符

时间:2022-03-03 20:05:46

逻辑运算符

! 非
- 非运算可以对一个布尔值进行取反,true变false false边true
- 当对非布尔值使用!时,会先将其转换为布尔值然后再取反
- 我们可以利用 !! 来将其他的数据类型转换为布尔值(隐式转换)

首先null赋值给变量a,通过!a运算后,null转换为了boolean值true,然后再一次!a,值变为false。null值变成boolean值就是false,所以通过两次非运算也能将一个其他类型的值转换为boolean类型的值,原理和Boolean()函数是一样的。

JavaScript学习系列博客_7_JavaScript中的逻辑运算符、三元运算符

&& 与
- &&可以对符号两侧的值进行与运算
- 只有两端的值都为true时,才会返回true。只要有一个false就会返回false。
- 与是一个短路的与,如果第一个值是false,则不再检查第二个值

只要前面这个值是false,后面的就不执行了,alert()弹窗是不会出来的。

JavaScript学习系列博客_7_JavaScript中的逻辑运算符、三元运算符

- 对于非布尔值,它会将其转换为布尔值然后做运算,并返回原值。

其实蛮好理解得,第一个是false根本不会执行到后面,就只能返回第一个值了,而第一个如果是true,则还未能知道结果,继续执行,但是无论后边是什么,执行到那里就返回那里的值了。并且这个返回的值的类型也没有改变,原来是什么类型的就是什么类型的。毕竟boolean值就两个,是不是boolean型也挺容易分辨的呀!
1.如果第一个值为false,则返回第一个值

JavaScript学习系列博客_7_JavaScript中的逻辑运算符、三元运算符

2.如果第一个值为true,则返回第二个值
JavaScript学习系列博客_7_JavaScript中的逻辑运算符、三元运算符

|| 或 
- ||可以对符号两侧的值进行或运算
- 只有两端都是false时,才会返回false。只要有一个true,就会返回true。
- 或是一个短路的或,如果第一个值是true,则不再检查第二个值
- 对于非布尔值,它会将其转换为布尔值然后做运算,并返回原值。
1.如果第一个值为true,则返回第一个值
2.如果第一个值为false,则返回第二个值

三元运算符

- 语法:条件表达式?语句1:语句2;
- 执行流程:
表达式结果为true,执行语句1,为false,执行语句2。如果表达式结果不是一个boolean值,浏览器会将其转换为boolean值。