gpt4 book ai didi

javascript - (!n%2) 与 (!n%2 == 0) 相同吗?

转载 作者:行者123 更新时间:2023-12-03 07:12:25 25 4
gpt4 key购买 nike

我试图理解 Eloquent JavaScript 中的这段代码:

function unless(test, then) {
if (!test) then();
}
function repeat(times, body) {
for (var i = 0; i < times; i++) body(i);
}

repeat(3, function(n) {
unless(n % 2, function() {
console.log(n, "is even");
});
});
// → 0 is even
// → 2 is even

我明白它说,使用 0,1,2 运行以下代码 3 次测试:

if (!n%2) function(n) {
console.log(n, "is even");
});

我不明白的是我们如何从 (!n%2) 得到 true/false?

(!n%2)(!n%2 == 0) 相同吗?

最佳答案

Logical NOT !higher precedencemodulo operator % .

因此,(!n%2) 等价于 (!n) % 2,它总是返回 0 一个假值,除非 n = 0 .

(!n%2 == 0)将返回true(再次除了0)。

它们并不相等,事实上它们是相反的(假值与真值)。

您需要!(n % 2)

或者只是检查数字是否为偶数

n % 2 === 0

关于javascript - (!n%2) 与 (!n%2 == 0) 相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36577189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com