isNaN的理解

相信有學過JavaScript的同窗都對isNaN不會陌生,它的做用是判斷當前值是否能轉換爲數字的重要工具。函數

在介紹isNaN函數前,咱們先來講說NaN。工具

NaN

NaN(not a number)是Number的一個特殊數值。對它的定義其實很是奇怪,非數值,一個不是數字的數值。這個數值用來表示原本用來返回數字的操做未返回數字的狀況。code

NaN有這樣的特色:對象

  1. 全部數值類型除以/減去/乘以非數值類型,都返回NaN。
  2. NaN不等於任何值,包括自身。(NaN != NaN)

注:Boolean和Null能轉換成Number類型,因此能正確返回數字。ip

isNaN()

isNaN()接收一個參數,這個參數能夠是任意類型。若是這個參數能夠被轉換爲Number類型,則返回false,不然返回true方法

  1. isNaN()的參數會被嘗試轉換爲Number類型。
  2. 若是參數爲[]''truefalsenull會被轉換爲數字,結果返回false。

注:當傳入的參數爲一個對象時,isNaN()會嘗試調用valueOf()方法,來判斷是否能夠轉換爲數值,若是不能,還會再調用toString()方法,來繼續判斷是否能夠轉換爲數值。co

相關文章
相關標籤/搜索