2020-12-25 圣诞节——ES5/ES6之Number.isFinite()及Number.isNaN()

首先祝大家圣诞节快乐,圣诞节的我依旧在学习代码中,最近看了不少关于程序员担心由于年龄的原因,自己的学习能力不如新人,由于长年累月的重复性工作,瓶颈无法提升,十分惆怅,而且生活压力大,身体也因为年轻时熬夜加班一天不如一天。35岁,程序员的门槛。然而在我看来,我是喜欢新鲜事物的人,学习前端主要原因是“喜欢”做好看的页面,可能会有人说:“欸,你真虚伪,直接说想要高工资不就得了,装啥呀。”额。。,有一说一,确实工资高是一方面,但是兴趣对我来说还是占主导。看了很多大厂的游戏官网主页,我就想着自己哪天也写一个就好了。不说了,开始学习!

ES6在Number对象上新提供了Number.isfinite()和Nubmer.isNaN()两个方法

1.Number.isfinite()用来检查一个数值是否为有限的(finite)
Number.isFinite(15); //true
Number.isFinite(0.8);//true
Number.isFinite(NAN);//false
Number.isFinite(Infinity);//false
Number.isFinite(-Infinity);//false
Number.isFinite('foo');//false
Number.isFinite('15');//false
Number.isFinite(true);//false

ES5 可以通过下面的代码部署Number.isFinite方法

(function(global){
  var global_isFinite = global.isFinite;
  Object.defineProperty(Number,'isFinite',{
    value:function isFinite (value){
      return typeof value ==='number' && global_isFinite(value);
    },
    configurable:true,
    enumerable:false,
    writable:true
  });
})(this);
2.Number,.isNaN()
Number.isNaN(NaN)//true
Number.isNaN(15)//false
Number.isNaN('15')//false
Number.isNaN(true)//false
Number.isNaN(9/NaN)//true
Number.isNaN('true'/0)//true
Number.isNaN('true'/'true')//true

ES5 可以通过下面的代码部署Number.isNaN()

(function(global){
  var global_NaN = global.isNaN;
  Object.defineProperty(Number,'isNaN',{
    value:function isNaN (value){
      return typeof value ==='number' && global_isNaN(value);
    },
    configurable:true,
    enumerable:false,
    writable:true
  });
})(this);

这两个新方法与传统的全局方法isFinite()和isNaN()的区别在于,传统方法先调用Number()将非数值转为数值,再进行判断,而新方法只对数值有效,对于非数值一律返回false。Number.isNaN()只有对于NaN才返回true,非NaN一律返回false。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、 二进制和八进制表示法ES6语法中 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O...
    斜杠工坊阅读 9,147评论 0 0
  • 三,字符串扩展 3.1 Unicode表示法 ES6 做出了改进,只要将码点放入大括号,就能正确解读该字符。有了这...
    eastbaby阅读 5,507评论 0 8
  • Number.isFinite Number.isFinite()用来检查一个数值是否为有限的(finite),即...
    ChangLau阅读 2,241评论 0 2
  • 一、二进制 和 八进制 表示法 ES6 提供了 二进制 和 八进制 数值的新写法,分别用前缀0b(或 0B) 和 ...
    了凡和纤风阅读 1,162评论 0 0
  • 前言:这是学习阮一峰老师的《ECMAScript6 入门》所做的笔记。开源书籍链接地址http://es6.rua...
    呆毛和二货阅读 2,578评论 0 0

友情链接更多精彩内容