最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

javascript中,关于null是不是等于0问题的探讨

来源:懂视网 责编:小采 时间:2020-11-27 20:16:07
文档

javascript中,关于null是不是等于0问题的探讨

javascript中,关于null是不是等于0问题的探讨:看见朋友们在讨论一个问题,说 null 到底和 0 是不是相等的。听到这里,去写个 Demo 试一下。<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <
推荐度:
导读javascript中,关于null是不是等于0问题的探讨:看见朋友们在讨论一个问题,说 null 到底和 0 是不是相等的。听到这里,去写个 Demo 试一下。<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <

看见朋友们在讨论一个问题,说 null 到底和 0 是不是相等的。

听到这里,去写个 Demo 试一下。

为什么 console.log(null <= 0); 和 console.log(null >= 0); 这两条的判断是 true 呢?

首先我们来看一下 ES3 关于 内部相等性运算的算法实现。

接下来我们再来看一下 ES3 关于 内部关系运算的算法实现。

ES3 的 “>” 运算符:

ES3 的”>=” 运算符:

ES3 的 “==” 运算符 :

根据资料得出的内容

  1. 关系运算符 和 相等运算符 并不是一个类别的.

  2. 关系运算符,在设计上,总是需要运算元尝试转为一个number . 而相等运算符在设计上,则没有这方面的考虑.

  3. 最重要的一点, 不要把 拿 a > b , a == b 的结果 想当然的去和 a >= b 建立联系. 正确的符合最初设计思想的关系是 a > b 与 a >= b是一组 . a == b 和其他相等运算符才是一组. 比如 a === b , a != b, a !== b .

那么我们就可以反过来看这个问题了。

结果为 false, null >= 0 // null 尝试转为number ,则为0 , 结果为 true. null == 0 // null在设计上,在此处不尝试转型. 所以 结果为false.

a >= b 运算符只是简单的去对 a < b的结果取反. 我以为这是一个设计上的失误的另一个理由是 undefined,在标准中,被单拎出来.细心的你,也一定发现了这一点. 对于undefined的设计, undefined > 0 , undefined < 0, undefined == 0 的结果是符合设计上,逻辑的一致性的. 而null是被遗漏的东西.直到今天早上.重新翻阅了ES3,5.相关章节. 才恍然大悟自己没有从根本上理解到这个问题.

另外一个例子

文档

javascript中,关于null是不是等于0问题的探讨

javascript中,关于null是不是等于0问题的探讨:看见朋友们在讨论一个问题,说 null 到底和 0 是不是相等的。听到这里,去写个 Demo 试一下。<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <
推荐度:
标签: 是不是 问题 null
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top