Js基础知识第九篇 逻辑运算符(与或非)

JavaScript有三个逻辑运算符: || (或),&&(与),(非)

一、|| (或)

  • 总结起来就是有真就真,全假才假。只要有一个为真结果就是真,两个都是假结果才假。

  •  如果操作符不是布尔值,那么他将被转换为布尔值来参与运算,例如数字作为true处理 ,数字0作为false

  •  或值运算寻找第一个真值

result = value1 || value2 || value3;

执行步骤:

a.从左到右依次计算操作数

b.处理每一个操作数时,都将其转换为布尔值。如果是true,就停止计算,返回这个操作数发的初始值。

c.如果所有的操作数都被计算过(也就是转换结果都是false),则返回最后一个操作数。

  • 返回的值是原始操作数的类型,不会做布尔转换

Js基础知识第九篇 逻辑运算符(与或非)_第1张图片

1.获取变量列表或者二表达式中的第一个真值

 Js基础知识第九篇 逻辑运算符(与或非)_第2张图片

 如果所有的变量都是假值,结果就是“SuperCoder”

 2.短路求值

       这里指的是, ||  对其参数进行处理,直到达到第一个真值,然后立刻返回该值,而无需处理其他参数。

        如果操作数不仅仅是一个值,而是一个有副作用的表达式,例如变量赋值或函数调用,那么这一特性的重要性就显而易见

在下面这个例子当中只会打印第二条信息

 有时,人们利用这个特性,只在左侧的条件为假的时候才执行。

二、&&(与)

     有假全假,都真则真。当两个操作数都是真才会返回true,否则有一个是假,结果返回false。

       同或运算一样,与运算的操作数可以是任意类型的值:

结果是不会有弹窗

  • 与运算寻找第一个假值(对于给出多个参与运算的值)

a.从左到右一次计算操作数

b.在处理每一个操作数时,都将其装换为布尔值。如果结果是false,就停止计算,返回这个操作数的初始值。

c.如果所有的操作数都被计算过(假如都是真值),则返回最后一个操作数

总的来说就是,与运算返回第一个假值,如果没有假值就返回最后一个值

Js基础知识第九篇 逻辑运算符(与或非)_第3张图片

 多值串联

与运算 && 在或运算 || 之前进行,也就是说,与运算符的优先级更高

 所以代码 a && b || c && d 跟下面加了括号的表达式一样

(a && b) || (c && d)

三、!(非)

  •  逻辑非运算符接受一个参数,并开始如下运作

1.将操作数转化为布尔型:true/false

2.返回相反的值

  •  两个非运算!!有时候用来将某个值转换为布尔型类型

当然还有一个方法也可以做到上述的转换,那就是

 Js基础知识第九篇 逻辑运算符(与或非)_第4张图片

 知识检验

1.

 结果是先是1,然后是2

2.

 结果是:1,然后undefined

你可能感兴趣的:(入门,Js,javascript)