首先祝大家圣诞节快乐,圣诞节的我依旧在学习代码中,最近看了不少关于程序员担心由于年龄的原因,自己的学习能力不如新人,由于长年累月的重复性工作,瓶颈无法提升,十分惆怅,而且生活压力大,身体也因为年轻时熬夜加班一天不如一天。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。