答案 0 :(得分:4)
Javascript的&&
运算符如果可以转换为false
则返回左侧部分,否则返回正确的部分。
因此,在这两种情况下,您都会在右侧获得表达式(因为012
和true
都不能转换为false
)。对于第一种情况,true
,对于第二种情况,012
。
由于012
是八进制,因此输出10
,这是八进制12
的基数10表示
我找不到一个更好的链接来源,所以我会引用这个(它不是V8特定的,但应该这样做):https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators
逻辑AND(&&)
expr1&&表达式2
如果可以转换为false,则返回
expr1
;否则,返回expr2
。因此,当与布尔值一起使用时,&&如果两个操作数都可以转换为true,则返回true;否则,返回false。
(大胆是我的)
答案 1 :(得分:2)
我解释&&
和||
运算符的方式是这样的:
a && b = a ? b : a;
a || b = a ? a : b;