好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

JavaScript 逻辑运算符

JavaScript 逻辑运算符

逻辑运算符通常用于布尔型(逻辑)值。这种情况下,它们返回 一个 布尔值。然而,&& 和 || 运算符会返回 一个 指定操作数的值,因此,这些运算符也用于非布尔值。这时,它们也就会返回 一个 非布尔型值。—— MDN

逻辑运算符用于逻辑运算。如变量 num 要大于2 同时 也要小于 7,这里的同时就是一种逻辑运算。

JavaScript 中的逻辑运算有三种:

&& 与 (并且) || 或 (或者) ! 非 (取反)

1. 与

语法:

 表达式  &&  表达式

如果表达式的结果成立则返回表达式的结果,否则返回表达式的结果
 

与可以理解为且、并且、同时。与在 JavaScript 使用 && 表示。

  true   &&   true  ;   // true 
 true   &&   false  ;   // false 
 false   &&   true  ;   // false 
 false   &&   false  ;   // false 
 

与操作在左侧的表达式结果为 true 或者可以 隐式转换为true 的时候,会返回右侧表达式结果,否则返回左侧表达式结果。

如:判断成绩是否处于 80 到 100 之间。

80 到 100 之间换一种表述方式就是,成绩大于等于 80 并且成绩小于等于100,这种表述形式更像程序语言,所以条件就是 分数 >= 80 并且 分数 <= 100 。

  var   score  =   ; 

 if   (  score   >=    &&   score   <=   )   { 
  console .  log  (  score   +   '分在80到100之间'  )  ; 
 }   else   { 
  console .  log  (  score   +   '分不在80到100之间'  )  ; 
 } 
 

if 语句中的条件左右都不满足,所以返回了表达式 score >= 80 的结果false。

如果 score 为 90,则满足两个条件,返回右侧表达式的结果。

2. 或

语法:

 表达式  ||  表达式

如果表达式结果成立,则返回表达式  的结果,否则返回表达式  的结果
 

或就是或者。在 JavaScript 中使用 || 表示。

或操作符在当有表达式的结果为 true 或者可以隐式转换为 true 的时候,就返回这个表达式的结果,如果没有则返回右侧表达式的结果。

  true   ||   true  ;   // true 
 true   ||   false  ;   // true 
 false   ||   true  ;   // true 
 false   ||   false  ;   // false 
 

如:判断 一个 数能被 3 整除或者能被 5 整除。

能被 3 或者 5 整除的数,表述成类似于计算机语言的样子就是 某个数 % 3 === 0 或者 某个数 % 5 === 0 。

  var  number  =   ; 

 if   ( number  %    ===    ||  number  %    ===   )   { 
  console .  log  ( number  +   '可以被3或5整除'  )  ; 
 }   else   { 
  console .  log  ( number  +   '不可以被3或5整除'  )  ; 
 } 

 //  输出 :15可以被3或5整除 
 

3. 非

语法:

  ! 表达式
 

非就是取反。表达式结果如果是布尔值,则会直接取反,结果如果不是布尔值,则会转换成布尔值再取反。

取反即将 true 变成 false ,或者将 false 变成 true 。

  !  true  ;   // false 
 !  false  ;   // true 

 !  ;   // true 
 !  ''  ;   // true 

 !  ;   // false 
 

不仅在日常编码中很常用到非,在许多 代码 压缩工作中也会用到非,如将 true 压缩成 !0,false 压缩成 !1,从 4 个字符和 5 个字符压缩到 2 个字符。

4. 双重非

双重非就是使用两个非,通常用于将一种数据类型转换成布尔值。

  !  !  ;   // true 
 

首先 !1 会得到结果 false ,再通过 !false 就会得到结果 true 。

5. 短路逻辑

短路逻辑是一种逻辑运算符的求值策略,还可以称作 短路求值 、 最小化求值 。

JavaScript 在进行与或计算的时候就会用到短路逻辑。

如:判断 一个 数是 2 的倍数同时又是 5 的倍数。

  var  number  =   ; 

number  %    ===    &&  number  %    ===   ; 
 

number 不满足任意 一个 条件, && 操作符碰到不成立的表达式就会直接返回这个表达式。

显然 number % 2 === 0 就不成立,所以直接返回这个表达式的结果,这样 一个 逻辑运算就已经得出结果了,JavaScript 不会再计算右侧的表达式。

这就是短路逻辑, 只要得出了结果,就不会再继续计算 。

6. 小结

JavaScript 中有与 && 、或 || 、非 ! 三种逻辑运算符,用于处理值之 间的 逻辑关系,当需要多个条件的相互关系来决定结果的时候,就会用到逻辑运算符。

JavaScript 表达式 ? ?JavaScript 比较运算符

查看更多关于JavaScript 逻辑运算符的详细内容...

  阅读:53次

上一篇

下一篇

第1节:什么是 JavaScript    第2节:学习环境准备    第3节:调试方案    第4节:JavaScript 变量    第5节:JavaScript 数据类型    第6节:JavaScript if 语句    第7节:for 语句    第8节:JavaScript 算数运算符    第9节:JavaScript 比较运算符    第10节:JavaScript 逻辑运算符    第11节:JavaScript 函数    第12节:JavaScript 表达式    第13节:JavaScript 对象    第14节:JavaScript 字符串    第15节:JavaScript 数字    第16节:JavaScript 数组    第17节:JavaScript switch 语句    第18节:JavaScript while 语句    第19节:JavaScript 的 break 与 continue    第20节:JavaScript with    第21节:document.cookie    第22节:JavaScript Function    第23节:JavaScript Math    第24节:JavaScript Date    第25节:JavaScript RegExp    第26节:JavaScript JSON    第27节:什么是 DOM    第28节:DOM 和 JavaScript 的关系    第29节:获取和操作 DOM 节点    第30节:DOM 与事件    第31节:DOM 事件绑定    第32节:DOM 事件对象    第33节:DOM 事件流    第34节:事件相关的优化    第35节:自定义事件    第36节:表单校验    第37节:什么是 BOM    第38节:常用的 BOM 相关对象    第39节:BOM 常用属性和方法    第40节:AJAX    第41节:异常处理    第42节:三元运算符    第43节:逗号操作符    第44节:void    第45节:typeof    第46节:delete 操作符    第47节:debugger    第48节:getter & setter    第49节:new 运算符与构造函数    第50节:JavaScript 原型    第51节:JavaScript instanceof    第52节:JavaScript this    第53节:严格模式    第54节:作用域    第55节:闭包    第56节:变量提升    第57节:对象包装器    第58节:Lodash    第59节:moment    第60节:swiper    第61节:ECMAScript 6    第62节:Node.js    第63节:Babel    第64节:CSS 预处理器    第65节:代码规范    第66节:TypeScript    第67节:WebComponents    第68节:Vue、React、Angular    第69节:小程序    第70节:JavaScript 关键字    第71节:分号导致的问题    第72节:对象属性访问问题    第73节:this 使用问题    第74节:浮点数精度问题    第75节:独一无二的 NaN    第76节:避免全局污染    第77节:控制台观察对象问题    第78节:根据环境选择语言特性    第79节:相关资源