我不明白条件((wins[i] & Score) ===wins[i])
。 score
是一个值,wins[i]
是包含整数的数组内的元素。它们的比较就像 bool 值一样。请赐教。
wins = [7, 56, 448, 73, 146, 292, 273, 84];
win = function (score) { //score is an int value
for (var i = 0; i < wins.length; i += 1) {
if ((wins[i] & score) === wins[i]) {
return true;
}
}
return false;
}
我问过周围的人,人们都在谈论按位运算符。有人可以尽可能简单地解释一下这种情况吗?我理解“正常”逻辑运算符。
最佳答案
这些不是逻辑运算符,它们本质上是不同的。您需要了解数字的二进制表示形式。例如,如果 a = 7
和 b = 12
,则通过查看两者中均为 1 的位来评估 a & b
a
和 b
:
a 00000111
b 00001100
a&b 00000100
所以7 & 12 = 4
。同样,|
是按位而不是逻辑或。
关于javascript - 无法理解这个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18763776/