前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript中的比较运算符

JavaScript中的比较运算符

作者头像
acoolgiser
发布2019-01-17 10:43:44
1.3K0
发布2019-01-17 10:43:44
举报
文章被收录于专栏:acoolgiser_zhuanlanacoolgiser_zhuanlan

比较运算符

当我们对Number做比较时,可以通过比较运算符得到一个布尔值:

代码语言:javascript
复制
2 > 5; // false
5 >= 2; // true
7 == 7; // true

实际上,JavaScript允许对任意数据类型做比较:

代码语言:javascript
复制
false == 0; // true
false === 0; // false

要特别注意相等运算符==。JavaScript在设计时,有两种比较运算符:

第一种是==比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果;

第二种是===比较,它不会自动转换数据类型,如果数据类型不一致,返回false,如果一致,再比较。

由于JavaScript这个设计缺陷,不要使用==比较,始终坚持使用===比较。

另一个例外是NaN这个特殊的Number与所有其他值都不相等,包括它自己:

代码语言:javascript
复制
NaN === NaN; // false

唯一能判断NaN的方法是通过isNaN()函数:

代码语言:javascript
复制
isNaN(NaN); // true

最后要注意浮点数的相等比较:

代码语言:javascript
复制
1 / 3 === (1 - 2 / 3); // false

这不是JavaScript的设计缺陷。浮点数在运算过程中会产生误差,因为计算机无法精确表示无限循环小数。要比较两个浮点数是否相等,只能计算它们之差的绝对值,看是否小于某个阈值:

代码语言:javascript
复制
Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // true

摘录自:https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/001434499190108eec0bdf14e704a09935cd112e501e31a000

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年11月06日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 比较运算符
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档