首页 新闻 会员 周边 捐助

javascript中 &&运算符

0
[已解决问题] 解决于 2015-12-22 15:36

ES中所述:

如果某个运算数不是原始的 Boolean 型值,逻辑 AND 运算并不一定返回 Boolean 值:

  • 如果一个运算数是对象,另一个是 Boolean 值,返回该对象。

代码:

var a = {
    name: 'a'
};

console.log(true && a); //- Object {name: "a"}

console.log(a && true); //- true

有人可以帮解释下为什么第二个不是输出a吗

小卫卫九块九的主页 小卫卫九块九 | 初学一级 | 园豆:199
提问于:2015-12-22 13:19
< >
分享
最佳答案
1

是短路的原因的。他是先左后右的计算值的并且表达式的值等于最后一个值。

如果是false或者0就会直接返回false/2了不会计算右表达式的值

奖励园豆:5
吴瑞祥 | 高人七级 |园豆:29449 | 2015-12-22 13:31

但是第一个值是true照理应该判断第二个值才对呀

小卫卫九块九 | 园豆:199 (初学一级) | 2015-12-22 13:42

@小卫卫九块九: 你说的是或的情况,与的情况是都要走的

吴瑞祥 | 园豆:29449 (高人七级) | 2015-12-22 13:45

@吴瑞祥: 所以返回的总是第二个值而不是两个值中非Bool的那个是吗?

小卫卫九块九 | 园豆:199 (初学一级) | 2015-12-22 15:00

@小卫卫九块九: 是的

吴瑞祥 | 园豆:29449 (高人七级) | 2015-12-22 15:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册