美文网首页
原来逻辑运算符的原理是这样的

原来逻辑运算符的原理是这样的

作者: 没头脑很不高兴 | 来源:发表于2017-11-07 00:37 被阅读0次

一、JavaScript里的逻辑运算符有“&&”、“||”和“!”,分别是“与”、“或”、“非”,经常出现在if语句中,分别有以下特点:

  1. “&&”两边的值同时为真的时候,这个表达式表示布尔值 “true”,只要有任意一边是“false”,则整个表达式为false。(比较严格
  2. “||”只要两边有任意一个值为真,表达式的值就是“true”。两边全是真,返回“true”,两边全是假,返回“false”。(比较宽容
  3. “!”后面跟一个表达式,后面的值为真时,返回“false”,否则,返回“true”

二、书上是这样说的,但是谁让咱是新手,总喜欢乱搞,逻辑运算符偏不放在if语句里面,直接输出,看能出现什么效果

有以下代码:

  var a = 1&&2
  console.log(a)

有了前面的结果,很轻易可以得出 这个是输出“true”的结果,但是很不辛,输出的是“2”。为了搞清楚到底发生了什么。又试了几次:

  var a = 3&&5
  console.log(a)

上面输出“5”

  var a = 10&&8
  console.log(a)

上面输出“8”

  var a = 10&&0
  console.log(a)

上面输出 “0”;

  var a = 0&&2
  console.log(a)

上面输出 “0”

  var a = undefined&&2
  console.log(a)

上面输出“undefined”
反复试了几次,终于搞清楚了背后的原因

&&逻辑运算符的原理

  • 逻辑运算符从左往右执行
  • 当第一个表达式布尔值为真时,直接输出第二个表达式本身(注意不是表达式的布尔值,而是表达式本身的值)
  • 当第一个表达式布尔值为“false”时,直接输出第一个表达式本身(注意不是表达式的布尔值,而是表达式本身的值)
  • 当有连续的几个&&同时运算时,从前往后看,步骤和上面一样
  • 当我们使用if语句时,因为它只能接受一个布尔值,所以会有一个自动转化的过程:
undefined,
 NaN, 
"",
 0,
false

这几个值会转换成“false”,其他类型的值全部全换成“true”;

||逻辑运算符的原理

    var a = 0||3||4
    console.log(a)

上面的运算输出“3”

  • 原理:||运算符从前往后算,若第一个值得布尔值是“false”,则看第二个,如果第二哥值布尔值为“true”,直接输出第二个值的值;如果有两个以上的值,则重复上面的步骤,直到遇到第一个为“true”的值,输出那个;若所有值全为false,则输出false

!逻辑运算符的原理

“!”运算符在执行时,先把后面的表达式的值转换成布尔值,在取反。false变成true,true变成false

相关文章

  • 原来逻辑运算符的原理是这样的

    一、JavaScript里的逻辑运算符有“&&”、“||”和“!”,分别是“与”、“或”、“非”,经常出现在if语...

  • 原来vue的原理是这样的

    vue.js中有两个核心功能:响应式数据绑定,组件系统。主流的mvc框架都实现了单向数据绑定,而双向绑定无非是在单...

  • 运算符

    运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。 运算符分为:算术运算符、关系运算符、逻辑运算符、位运算符、...

  • 03-基本运算

    运算符可以分为:算术运算符、比较运算符和逻辑运算符。 优先级是:算术运算符>比较运算符>逻辑运算符。 不过呢,开始...

  • 03-基本运算

    运算符可以分为:算术运算符、比较运算符和逻辑运算符。优先级是:算术运算符>比较运算符>逻辑运算符。不过呢,开始没背...

  • 第三章的语法条件判断

    3.1.7 逻辑运算符 1、逻辑与运算符&& 逻辑与运算符是一个二元运算符,因为它合并两个逻辑表达式,即两个值为t...

  • C-运算符

    运算符是一种告诉编译器执行特定的数学或逻辑操作的符号,分为: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运...

  • 03-基本运算

    运算符分为:算术运算符、比较运算符和逻辑运算符优先级是:算术运算符>比较运算符>逻辑运算符 注意:没记住优先级的话...

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

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

  • 浅谈mysql增删改查(1)

    查询 关系运算符 <,>,!=(<>),= 逻辑运算符 and,or,not in between in查询的是...

网友评论

      本文标题:原来逻辑运算符的原理是这样的

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