置信有學過JavaScript的同硯都對isNaN不會生疏,它的作用是推斷當前值是不是能轉換為数字的主要東西。
在引見isNaN函數前,我們先來說說NaN。
NaN
NaN(not a number)是Number的一個特別數值。對它的定義實在異常新鮮,非數值,一個不是数字的數值。這個數值用來示意原本用來返回数字的操縱未返回数字的狀況。
NaN有如許的特性:
- 一切數值範例
除以/減去/乘以
非數值範例,都返回NaN。 - NaN不等於任何值,包含本身。(NaN != NaN)
注:Boolean和Null能轉換成Number範例,所以能準確返回数字。
isNaN()
isNaN()吸收一個參數,這個參數可所以恣意範例。假如這個參數能夠被轉換為Number範例,則返回false
,不然返回true
。
- isNaN()的參數會被嘗試轉換為Number範例。
- 假如參數為
[]
、''
、true
、false
、null
會被轉換為数字,效果返回false。
注:當傳入的參數為一個對象時,isNaN()會嘗試挪用valueOf()要領,來推斷是不是能夠轉換為數值,假如不能,還會再挪用toString()要領,來繼承推斷是不是能夠轉換為數值。