通过Good Parts并在节点中搞乱,我想知道为什么会出现这种情况。我知道 !指的是“逻辑非”运算符,那!!基本上booleanates(ifies?)!x的返回值,但是为什么呢?
var x = 3, y = 4;
x != y; // true
x = !y // false ----> But really, its setting x to "not y", a truthy value, correct
x = !!x*x // 1 --- wut?
所以,在玩了一下之后,我明白所声明的是,“x等于不是x(”真“,因为!x === false)乘以x(真)”
所以我想问题是,为什么这是真的* = 1在JS中?
答案 0 :(得分:4)
*
运算符会将true
强制转换为1
以评估乘法,并1 * 1 === 1
。
答案 1 :(得分:1)
虽然false是0的位值,但True是1的位值。所以我相信你问的是为什么1 * 1 = 1?我希望能够很好地解释它。