js中的number類型


NaN有兩個特點:

1 任何涉及NAN的操作都會返回NaN(這個特點在多步計算中可能有問題)

2NaN與任何值都不相等,包括它本身,例如下面的代碼也是返回false

alert(NaN == NaN)

 

針對NaN的這兩個特點,ECMAscript定義了isNaN()這個函數,該函數接收一個參數,該參數可以是任意數據類型,而且該參數可以幫我們確定這個參數是否“不是數值”。isNaN()

接收到一個值之后會將這個值轉換成數值。而某些不會轉換為數值的值都將返回true

 

數值轉換

js中數值轉換的函數有三個:parseInt()、parseFloat()、number()

parseInt ( cString )從字符串cString非空字符開始轉換得到的整數,遇到小數點或其他0-9外的字符就停止,如“-1234a”,“-1234.0”都將返回 -1234;如果除第一個符號外一個0-9字符都不是,將返回NaN,如“-a”、“abc”等;


Number( cString )從字符串cString轉換得到的數字,包括Int和Float類型,如:“-123”返回-123,“123”和“00123”都返回 123,“234。56”返回234。56等。cString必須是合法的數字串,否則返回NaN;如“.123”、“1.23.45”、 “--123”、“123a"都返回NaN.


總之Number( )更象parseFloat( ),Number對參數更挑剔,稍有不是數字就返回NaN。

parseFloat支持第一個非空字符為小數點,如parseFloat(".123" )返回0.123。

而Number(".123" )返回NaN。

空字符串或完全空格串健壯的parseFloat()返回NaN,而Number()返回0,這有點讓人費解。

除了不支持無前導0小數 (如.123、-.123)和支持多余的前導0(如-00123返回-123)多少不符合常規外,Number能用來驗證數字串!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM