【发布时间】:2016-07-07 06:06:23
【问题描述】:
【问题讨论】:
标签: javascript v8 interpreter
【问题讨论】:
标签: javascript v8 interpreter
Javascript 的&& 运算符如果可以转换为false,则返回左侧,否则返回右侧。
所以在这两种情况下,您都得到了右边的表达式(因为012 和true 都不能转换为false)。对于第一种情况,true,对于第二种情况,012。
由于012 是八进制,您将得到10 输出,它是八进制12 的base-10 表示
我找不到更好的来源链接,所以我会引用这个(不是 V8 特定的,但应该这样做):https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators
逻辑与 (&&)
expr1 && expr2
如果可以转换为false则返回
expr1;否则,返回expr2。因此,当与布尔值一起使用时,如果两个操作数都可以转换为 true,则 && 返回 true;否则,返回 false。
(粗体是我的)
【讨论】:
我对@987654321@ 和|| 运算符的理解是这样的:
a && b = a ? b : a;
a || b = a ? a : b;
【讨论】: