javascript 红皮高程(7)

时间:2022-04-27
本文章向大家介绍javascript 红皮高程(7),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

javascript的数值表示,真是。。

这还有个NaN,非数值(Not a Number),就是不是数字。然后已是书里写着,是一个特殊的数值。

这让小学文化的我,怎么理解?一个不是数字的东西,然后它又是一个特殊的数值。

NaN,它用来表示一个本来要返回数值的操作数,但没有返回数值的时候,就返回NaN了。

书上第29页。说是这样就不用报错了。意思就是,如果不返回NaN,你让我返回什么呢,,,

ECMAScript里,任何数值除以非数值,都返回NaN。

书上也提示了,实际上0除0,返回NaN。正数除以0返回Infinity;负数除以0,返回-Infinity。我感觉这些东西,最好就是死记硬背下来。

重点哈,NaN有二个特别:

1,它和谁都不相等,包括它自己;

2,谁和它有任何操作,都返回NaN;

这有啥用?不知道啊,反正死记吧,也许哪个库或框架里会用。

第2条里说谁跟NaN搞,都会返回NaN,可是,

console.log( 10 / NaN ); //NaN
console.log( 10 & NaN ); //0

为啥是0而不是NaN?

说是有个函数,isNaN(),专门判断参数是否“不是数值”。

有点绕,我理解了一下,这个函数会把接收到的参数转换为数值。能转的就返回false,不能转的就是返回true。就这样:

console.log( isNaN(NaN) );//true

NaN,它不是数值;

console.log( isNaN(false) );//false

false,它可以被转成0,所以它是数值。

而且这货还能搞对象,搞对象,搞对象,就这样:

function aaa(){
  return "aaa"
}
console.log( isNaN(aaa) );//true

具体的原因说是在3.5节,跟操作符有关,到时再看。

哎呀,真是烦啊,null,undefined,NaN这三者的区别,在面试中好多次遇到。。。

重学javascript 红皮高程(5)

重学javascript 红皮高程(4)

重学javascript 红皮高程(3)

重学javascript 红皮高程(2)

重学javascript 红皮高程(1)