ithome
参考资料1:MDN — the Mozilla Developer Network
参考资料2:从ES6开始的JavaScript学习生活
参考资料3:Fooish 程序技术
三种逻辑运算符:
&&
: 符号左右都是true
才会得到true
;其中任一方false
,则得到false
。||
:符号左右任一方为true
,得到true
;两方都false
,才会得到false
。!
:原本是true
,经!
转换会变成false
!!(xxx)
可以当Boolean(xxx)
用!!'false' == !!'true' // true 经过!!转换,两个值都是Boolean,且字串总是ture
!!'false' === !!'true' // true 即便使用严格比较===也是true,理由同上
哪些资料类型经ToBoolean
会转换成falsy?
Undefined
Null
0
, -0
, NaN
""
or ''
Boolean("false"); // true
Boolean("0"); // true
Boolean(-0); // false
Boolean("''''"); // true
Boolean(''); // false
const arr = [1, 2, 3, null, 'a', 0]
arr.filter(Boolean) // [1, 2, 3, 'a'] null跟0都是falsy,因此被清掉了
arr // arr = [1, 2, 3, null, 'a', 0]阵列只是复制,没有被改变 (immutable)
短路求值(Short-circuit)
&&
)、(||
)也称为短路求值(Short-circuit)运算符||
)运算时,如果第1个运算子为"falsy"时,回传第2个运算子。否则,回传第1个运算子。&&
)运算时,如果第1个运算子为"falsy"时,回传第1个运算子。否则,直接回传第2个运算子。刚好跟(||
)相反
console.log('foo' || 'bar') // 'foo'
console.log(false || 'bar') // 'bar'
console.log(false && 'bar') // false
console.log( 0 || '' || 5 || 'bar') //5
console.log(false || null || '' || 0 || NaN || 'Hello' || undefined) //'Hello'
let a = value || 5 // 5是预设值
<<: [影片]第29天:物件导向程序设计-可以为null 的数值型态(实例112、113)
网站上线後,开始接触网站经营相关的资讯时,才发现经营网站没那麽简单? 网站最重要的工作就是招揽潜在客...
预设 先要有一个开发板,可以接各种sensor。 可以先跟电脑有实体连接,这样就有指定的port可以...
昨天我们成功的让 Prometheus 可以采集到一些指标了,可是为了了解服务的状态,我们还需要自己...
医生说我很健康真是太好了呢,今日题目如下 **题号:2 标题:Add Two Numbers 难度:...
前情提要 经过上次火属性初阶魔法近距离灼伤手指後。 「就不能让这个火离我远一点吗?远距离魔法不存在吗...