摘要:逻辑与操作可以应用于任何类型的操作数,而不仅仅是布尔值。对于逻辑与操作而言,如果第一个操作数是,则无论第二个操作数是什么值,结果都不再可能是了。与逻辑与操作符相似,逻辑或操作符也是短路操作符。
逻辑与操作可以应用于任何类型的操作数,而不仅仅是布尔值。在有一个操作数不是布尔值的情况下,逻辑与操作就不一定返回布尔值;此时,它遵循下列规则:
如果第一个操作数是对象,则返回第二个操作数;
如果第二个操作数是对象,则只有在第一个操作数的求值结果为true的情况下才会返回该对象;
如果两个操作数都是对象,则返回第二个操作数;
如果有一个操作数是null,则返回null;
如果有一个操作数是NaN,则返回NaN;
如果有一个操作数是undefined,则返回undefined。
逻辑与操作属于短路操作,即如果第一个操作数能够决定结果,那么就不会再对第二个操作数求值。对于逻辑与操作而言,如果第一个操作数是false,则无论第二个操作数是什么值,结果都不再可能是true了。
与逻辑与操作相似,如果有一个操作数不是布尔值,逻辑或也不一定返回布尔值;此时,它遵循下列规则:
如果第一个操作数是对象,则返回第一个操作数;
如果第一个操作数的求值结果为false,则返回第二个操作数;
如果两个操作数都是对象,则返回第一个操作数;
如果两个操作数都是null,则返回null;
如果两个操作数都是NaN,则返回NaN;
如果两个操作数都是undefined,则返回undefined。
与逻辑与操作符相似,逻辑或操作符也是短路操作符。也就是说,如果第一个操作数的求值结果为true,就不会对第二个操作数求值了。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/79138.html
摘要:如果第一项的值为时,则执行后面一项的运算,返回的是第二项执行运算后的值再来看多一个例子,自己多动手尝试看看就明白了。 先来看一个关于逻辑或的例子: var b = 0 var a = b++ || b++ console.log(b) // 2 var c = ++b || ++b console.log(a) // 1 console.log(c) //...
摘要:以战争与和平为蓝本回顾了历史,也给出了非常赞的观察视角,程序员应该务实,而不是教条,更重要的是保持好奇心。初版于年前发布的,作者重写整个仓库从到之后,最近发布了版本,新版最大变化是升级到。 showImg(https://segmentfault.com/img/remote/1460000009584813); 不知道大家是否注意到,社区中出现的 CSS 尤其是 CSS-IN-JS...
摘要:与相乘,结果为与非数值相乘,结果为或者除以,结果为除以,结果为如果是非零的有限数被零除,则结果是或总的来说,得出的结果为不可预测的基本都为任何操作数与进行关系比较,结果都是。实际开发不建议使用语句,会造成调试的困难增加 1.负数二进制存储使用的格式是二进制补码,计算一个数值的二进制补码步骤如下: (1)取该值的绝对值的二进制(2)取反码(3)反码+1,从而得出补码 2.位操作: (...
摘要:上一个版本的问题接这篇文章,聊聊参数检查工具的完善。最终实现了这样的效果检查是否在区间与的交集内检查是否在区间与的并集内检查是否是数组并且长度大于检查是否不是之间的偶数即 上一个版本的问题 接这篇文章,聊聊参数检查工具 param-check 的完善。 按照之前的接口设计,链式调用表示与,参数表表示或,自然产生了一个问题——如果我要表达(A与B)或(C与D)这样的逻辑组合应该怎么办? ...
阅读 1704·2021-11-18 10:02
阅读 2220·2021-11-15 11:38
阅读 2669·2019-08-30 15:52
阅读 2191·2019-08-29 14:04
阅读 3232·2019-08-29 12:29
阅读 2087·2019-08-26 11:44
阅读 995·2019-08-26 10:28
阅读 831·2019-08-23 18:37