这两个术语有什么区别:
if(counter % 4 != 0)
if(counter % 4 == !0)
我看不出任何逻辑差异,但我的计算机却有(而且我 100% 确定我的计算机比我更符合逻辑)。
感谢所有见解。
最佳答案
JavaScript 中的 !
(非)运算符执行类型强制转换 - 它尝试将值转换为 bool 值(真或假)。 JavaScript 中的 0 是 falsy,所以 !0 是 false 的反义词,即 true。
所以你的第一个 if
保持不变:
if(counter % 4 != 0)
但是第二个其实是
if(counter % 4 == true)
这绝对不一样。
编辑:
JavaScript 在使用非严格的 !=
和 ==
运算符(相对于严格的 !==
和 ===
) 所以在这种情况下,如果 counter % 4
变为 1,它将评估为 true
因为 1
是真实值。
这是 JavaScript 中的虚假值列表:http://www.sitepoint.com/javascript-truthy-falsy/
关于javascript - 初学者 javascript 中非常相似的术语之间的逻辑差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16138518/