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'),会输出什么结果呢?