javascript - 为什么 === 运算符不能正常工作?
问题描述
当我运行以下代码时,它返回 true
parseFloat(0.5*2)===parseInt(0.5*2)
但是,当我运行以下代码时,它正确返回 false。
parseFloat(0.5*0.5) === parseInt(0.5*0.5)
这两种情况都不应该是错误的吗?还是我错过了什么?
解决方案
这两种情况都不应该是错误的吗?还是我错过了什么?
也许你认为 JavaScript 中有两种不同的“float”和“int”类型的数字,因此三重等式应该检查 type 和 return false
?
在 JavaScript中1
和2.3
都是同一个类型的“数字”。
因此,由于在第一种情况(1.0)中数字相等,因此三重相等(类型 + 值相等)成立。
用文字值检查它:
console.log(1 === 1.0)
推荐阅读
- angular - 我们如何在 Angular 项目中使用外部样式表?
- java - 嵌套 if-object-null-return 方法提取或替代声纳认知复杂性
- android - 如何在我的 Android 应用中使用新的 Google 的 Sans 字体?
- c++ - SCTK 安装:全局命名空间中没有名为 uint16_t 的成员
- spring - spring cloud stream 两个不同组的不同并发设置不起作用
- python - 运行 python 代码时出现 Errno 13 Permission Denied 错误
- c# - C# 捕获 Microsoft 打印到 PDF 对话框
- gradle - Nexus:未找到 Gradle 插件 org.unbroken-dome.test-sets
- jquery - 如何从api中获取图像
- microsoft-teams - 是否可以将文件从 documentum 共享到 Microsoft 团队组?