Js逻辑运算和位运算的解析

date
Mar 10, 2018
slug
Js逻辑运算和位运算的解析
status
Published
tags
JavaScript
summary
type
Post

前言

先看一段代码:
//结果大家可以自行调试看看
var Default = Default || {};
var name = Default.name && '';
这是Js代码中经常会出现的逻辑运算用法,如此运用,代码更加优雅,这就是Js的魅力之一。

逻辑运算原理分析

  • 这里分析一下原理,Js中逻辑运算的表达式,和Java有点不一样,表达式可以不是布尔结果。 ** 值得注意的是,Js中条件语句中的表达式可是任意类型,具体哪些类型判断为真,哪些判定为假,这里卖个关子,大家可以去翻阅资料。 **
  • &&,逻辑与运算链,如果** 最后一个表达式判定结束或碰到判定为假的表达式,然后停止判定,返回这个值 **,如:console.log(1 && '123' && null),结果为null;console.log(1 && '123' && '456'),结果为:'456'。
  • ||,逻辑或运算链,判定过程相反:** 最后一个表达式判定结束或碰到判定为真的表达式,然后停止判定,并返回这个值。大家可以自行编写样例试一试。

位运算原理分析

位运算相比逻辑运算,用的频率可能没那么高,但位运算有时候就是神器。
  • 位运算本质上是,二进制位的逻辑运算。布尔类型true,false在内部就是1和0,这两个数正是计算机信息的基本单位。
  • 所以位运算和逻辑运算的区别,就在于,位运算不是判定真假(所以不会熔断),而是执行按位的逻辑运算
  • 最后,给个例子,大家可以看一看,想一想:console.log(123 & 12 | '1'),会输出什么结果呢?

© XieZhichao 2022 - 2024