javascript一般不会有null这个状态,除非主动赋值,或者js框架的转换(dwr);
创新互联公司专注于企业营销型网站建设、网站重做改版、牙克石网站定制设计、自适应品牌网站建设、H5高端网站建设、商城网站定制开发、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为牙克石等各大城市提供网站开发制作服务。
javascript中一个js对象不存在或者定义了单位初始化,那么它的状态就是undefined。
NaN是Not a Number的缩写,主要是处理JS计算中出现的异常错误情况。
var obj2;
console.log(obj2);//undefined
console.log(obj2 == undefined);//true
obj2 = new Object();
console.log(obj2 == undefined);//false
var obj3 = 1/"a";
console.log(isNaN(obj3));//true
null 是指一个空白对象,即什么都没有、什么都不存在
NaN是Not a Number(不是一个数字)的简称,即变量或表达式的值不是数字或可转化为数字的其他值
undefined的意思就是未定义、未声明,任何未经声明的对象(如变量、函数等)都是undefined
window.isNaN 只对数值有效,如果传入其他值,会被先转成数值。比如,传入字符串的时候,字符串会被先转成NaN,所以最后返回true,这一点要特别引起注意。也就是说,isNaN为true的值,有可能不是NaN,而是一个字符串。(不是数值会先调用 Number 方法转化为数值)
isNaN本意是通过Number方法把参数转换成数字类型,如若转换成功,则返回false,反之返回true,它只是判断参数是否能转成数字,不能用来判断是否严格等于NaN。,如果要判断某个值是否严格等于NaN不能用这个方法
ES6提供了Number.isNaN方法用来判断一个值是否严格等于NaN,首先判断 value 类型是不是 number;,如不是,直接返回false。2. 然后判断 value 是不是 NaN
推荐方法:
补充知识:
NaN 是 JavaScript 之中唯一不等于自身的值
Object.is() 是 ES6 用来比较两个值是否严格相等,与严格比较运算符(===)的行为基本一致。除了对 +0 和 -0 以及 NaN 的判断