javascript - 初学者 javascript 中非常相似的术语之间的逻辑差异

标签 javascript logic

这两个术语有什么区别:

 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/

相关文章:

C++ 面试准备

javascript - 使用 JQuery 从 JSON 文件搜索/自动完成(只需要获取以给定字母开头的结果)

javascript - 代码在 codepen 上有效,但在我的网站上无效

javascript - 使用 Chart.js 和关联数组生成条形图

javascript - 如何分离主干/ Ember 组件?

objective-c - 获取可为空的 bool 的 Objective-C 方法是什么?

logic - Verilog 中的 if 语句和分配连线

javascript - 从对象数组中删除所有具有相同名称的键

C# 通过一个属性比较两个列表并更改第一个列表的值

java - 仅使用一个循环将数组分为 2 个相等的部分,需要替代方法