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

2017-11-07  本文已影响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”
反复试了几次,终于搞清楚了背后的原因

&&逻辑运算符的原理

undefined,
 NaN, 
"",
 0,
false

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

||逻辑运算符的原理

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

上面的运算输出“3”

!逻辑运算符的原理

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

上一篇 下一篇

猜你喜欢

热点阅读