for (i=0;i<10;i++) {
if (i%2 == 0)
console.log( i + "is even number")
else
console.log(i + "is not even")
}
工作,但是
for (i=0;i<10;i++) {
if (!i%2)
console.log( i + "is even number")
else
console.log(i + "is not even")
}
不工作,为什么? i%2 什么时候变为真?
最佳答案
尝试跟随
for (i=0;i<10;i++) {
if (!(i%2))
console.log( i + "is even number")
else
console.log(i + "is not even")
}
你需要看看operator precedence
出了什么问题?
根据运算符优先级 !i%2
被评估为 (!i)%2
因此,对于 i
的每个值大于0,!i
变为false
并且false%2
为0
关于javascript - !( i%2) 与 (i%2 == 0) 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35195251/