JavaScript逻辑运算符

作者: 微语博客 | 来源:发表于2021-07-13 23:10 被阅读0次

逻辑运算符

前面我们学习了JS的算术运算符和比较运算符,本篇文章我们继续学习JS的逻辑运算符,在编程语言里,比较和逻辑运算符都是语句中重要的部分。

JavaScript 中有三个逻辑运算符:||(或),&&(与),!(非)。虽然它们被称为“逻辑”运算符,但这些运算符却可以被应用于任意类型的值,而不仅仅是布尔值。它们的结果也同样可以是任意类型。

||(或运算)

||(或运算)在传统的编程中,逻辑或仅能够操作布尔值。如果参与运算的任意一个参数为 true,返回的结果就为 true,否则返回 false。下面是四种可能的逻辑组合:

算术运算符也就是我们熟悉的数学运算符,比如说 加法 +,减法 -,乘法 ×,除法 ÷,取余 %,求幂 ** ,前面四个都很简单,而取余和求幂需要说一说。

取余运算符是 %,尽管它看起来很像百分数,但实际并无关联。a % b 的结果是 a 整除 b 的 余数。比如下面:

console.log( true || true );   // true
console.log( false || true );  // true
console.log( true || false );  // true
console.log( false || false ); // false

在 JavaScript 中,处理运算时存在类型转换,逻辑运算符更加灵活强大。如果操作数不是布尔值,那么它将会被转化为布尔值来参与运算。数字 1 被作为 true 处理,数字 0 则被作为 false

console.log( 1 || false );   // 1
console.log( 1 || 0 );  // 1
console.log( 0 || false );   // false 
console.log( false || 0 );  // 0

其实从上面的比较来看,||(或运算)遇到true就会返回值,如果没有遇到true,那就返回最后一个值。这一特性可以总结为寻找第一个真值,而真值后面的值被忽略,形成了短路的状态,比如下面的多级或运算。

console.log( false || 0 || 1); //1
console.log( false || 0 || 0); //0 
console.log( false || 0 || false); //false
console.log( false || 1 || true); //1

在JavaScript中,空字符串,undefined,null,0,NaN等假值都会在运算中转换为false。

&&(与运算)

两个 & 符号表示 && 与运算符。在传统的编程中,当两个操作数都是真值时,与运算返回 true,否则返回 false

console.log( true && true );   // true
console.log( false && true );  // false
console.log( true && false );  // false
console.log( false && false ); // false

和上面的||(或运算)相反,与运算返回第一个假值,如果没有假值就返回最后一个值。

console.log( false && 0 && 1); //false
console.log( true && 0 && false); //0 
console.log( 1 && true && 0); //0
console.log( true && 1 && true); //true

与或组合运算,当出现与或组合运算时,与优先级会高于或优先级。

console.log( 1 && 0 || 2 && 3 ); // 3 根据优先级先算两个&&运算,最后或运算
console.log( 0 || 1 && 2 || 3 ); // 2 先算中间与运算,在算前面或运算,最后算后面或运算

!(非运算)

感叹符号 ! 表示布尔非运算符,要注意这里的感叹号是英文输入法状态下的。逻辑非运算符接受一个参数,将操作参数转化为布尔类型:true/false,并返回相反的值。

console.log( !true ); // false
console.log( !0 ); // true

两个非运算 !! 有时候用来将某个值转化为布尔类型:第一个非运算将该值转化为布尔类型并取反,第二个非运算再次取反。最后我们就得到了一个任意值到布尔值的转化。

alert( !!"HelloWorld" ); // true
alert( !!null ); // false

非运算符 ! 的优先级在所有逻辑运算符里面最高,所以它总是在 &&|| 之前执行。

相关文章

  • JavaScript逻辑运算符与赋值运算符

    逻辑运算符 JavaScript中有三个逻辑运算符,&&与、||或、!非。 JavaScript 中的逻辑运算符可...

  • runoob js第三天

    JavaScript 比较 和 逻辑运算符 比较和逻辑运算符用于测试 true 或者 false。比较运算符x=5...

  • 03-JavaScript运算符

    JavaScript运算符 和数学的运算符一样,JavaScript中的运算符是告诉程序执行特定算术或逻辑操作的符...

  • review javascript 27:JS运算符

    JavaScript 运算符主要包括:· 算术运算符· 赋值运算符· 比较运算符· 三元运算符· 逻辑运算符· 字...

  • 运算符(操作符)

    1. 运算符的分类 JavaScript中常用的运算符有: 算数运算符 递增和递减运算符 比较运算符 逻辑运算符 ...

  • JavaScript运算符

    在JavaScript中,常见的运算符有算数运算符、比较运算符和逻辑运算符。 " + "号也可以用来连接字符串 “...

  • 05-JavaScript运算符

    运算符基本概念 JavaScript运算符的概念和C语言一样, 都是告诉程序执行特定算术或逻辑操作的符号。 运算符...

  • 绝对一分钟记牢JavaScript的逻辑运算符,一辈子都不会忘!

    很多学习JavaScript的人,容易被JavaScript的逻辑运算符的运算规则搞晕。为什么呢?主要是JavaS...

  • javascript逻辑运算符“||”和“&&”

    javascript逻辑运算符“||”和“&&” 一、先来说说||(逻辑或),从字面上来说,只有前后都是false...

  • 短路运算

    以下代码讲述javascript逻辑运算符&&和||短路运算的执行结果和总结。

网友评论

    本文标题:JavaScript逻辑运算符

    本文链接:https://www.haomeiwen.com/subject/fldepltx.html