1. 程式人生 > >數值常用的屬性和方法

數值常用的屬性和方法

1、toString(數字轉字串)   toString方法可以接受一個引數,表示輸出的進位制。如果省略這個引數,預設將數值轉成十進位制的字串;否則就根據引數指定的進位制,將一個數字轉化成某個進位制的字串   toString方法只能將十進位制的數,轉為其他進位制的字串。如果要將其他進位制的數,轉回十進位制,需要使用parseInt方法   示例:     ( 10 ).toString( )  // "10"     ( 10 ).toString( 2 )  // "1010"     ( 10 ).toString( 8 )  // "12"     ( 10 ).toString( 16 )  // "a"     10["toString"]( 2 )  // "1010"   注意:上面程式碼中,數字一定要放在括號裡,這樣表明後面的點表示呼叫物件屬性。如果不加括號,這個點會被 JavaScript 引擎解釋成小數點,從而報錯。   2、toFixed(保留數字小數點後幾位)   toFixed( )方法將數字轉成指定位數的小數的字串   由於浮點數的原因,小數5的四捨五入是不確定的,使用的時候必須小心。   示例:     ( 10 ).toFixed( 2 )  // "10.00"     ( 10.005 ).toFixed( 2 )  // "10.01"   注意:上面程式碼中,數字一定要放在括號裡,這樣表明後面的點表示呼叫物件屬性。如果不加括號,這個點會被 JavaScript 引擎解釋成小數點,從而報錯。   3、toPrecision(保留幾位有效數字,結果是字串型別)   該方法用於將一個數轉為指定位數的有效數字,用於四捨五入時不太可靠,跟浮點數不是精確儲存有關。   示例:     ( 12.15 ).toPrecision(3)  // "12.2"     ( 12.25 ).toPrecision(3)  // "12.3"     ( 12.35 ).toPrecision(3)  // "12.3"     ( 12.45 ).toPrecision(3)  // "12.4"   4、parseInt(將字串轉為整數)   (1)如果字串頭部有空格,空格會被自動去除。     parseInt( "123" )  // 123     parseInt( "    81" )  // 81   (2)字串轉為整數的時候,是一個個字元依次轉換,如果遇到不能轉為數字的字元,就不再進行下去,返回已經轉好的部分。     parseInt( "8a" )  // 8     parseInt( "15px" )  // 15   (3)如果字串的第一個字元不能轉化為數字(後面跟著數字的正負號除外),返回NaN。     parseInt( "abc" )  // NaN     parseInt( ".3" )  // NaN     parseInt( "" )  // NaN     parseInt( "+" )  // NaN     parseInt( "+1" )  // 1     parseInt( "-1" )  // -1   所以,parseInt的返回值只有兩種可能,要麼是一個十進位制整數,要麼是NaN   (4)如果字串以0x或0X開頭,parseInt會將其按照十六進位制數解析。     parseInt( "0x10" )  // 16   (5)如果字串以0開頭,將其按照10進位制解析。     parseInt( "011" )  // 11   (6)該方法還可以接受第二個引數(2到36之間),表示被解析的值的進位制,返回該值對應的十進位制數。預設情況下,parseInt的第二個引數為10,即預設是十進位制轉十進位制。     parseInt( "1000" ,10)  // 1000     parseInt( "1000" ,2)  // 8     parseInt( "1000" ,6)  // 216     parseInt( "1000" ,8)  // 512   5、parseFloat( 將字串轉成浮點數 )   parseFloat( "3.14" )  // 3.14   parseFloat( "31.4ekdlf" )  // 31.4   parseFloat( "" )  // NaN   6、isNaN   isNaN方法可以用來判斷一個值是否為NaN   isNaN( NaN )  // true   isNaN( true )  // false   7、isFinite   isFinite方法返回一個布林值,表示某個值是否為正常的數值   除了Infinity、-Infinity、NaN和undefined這幾個值會返回false,isFinite對於其他的數值都會返回true。   示例:     isFinite(Infinity)  // false     isFinite(-Infinity)  // false     isFinite(NaN)  // false     isFinite(undefined)  // false     isFinite(null)  // true     isFinite(-1)  // true   8、數值的進位制   十進位制:沒有前導0的數值。   八進位制:有字首0o或0O的數值,或者有前導0、且只用到0-7的八個阿拉伯數字的數值。   十六進位制:有字首0x或0X的數值。   二進位制:有字首0b或0B的數值。   示例:     oxff  // 255     0o377  // 255     0b11  // 3   如果八進位制、十六進位制、二進位制的數值裡面,出現不屬於該進位制的數字,就會報錯。   示例:     0xzz  // 報錯     0o88  // 報錯     0b22  // 報錯   通常來說,有前導0的數值會被視為八進位制,但是如果前導0後面有數字8和9,則該數值被視為十進位制。   示例:     0888  // 888     0777  //511   9、整型,浮點型   Number.parseInt(10.05)   Number.parseFloat(10.05)   10、Number.isInteger()   用來判斷一個數值是否為整數(使用===判斷)   Number.isInteger(25)  // true   Number.isInteger(25.0)  // true   Number.isInteger(25.3)  // false   Number.isInteger(true)  // false   Number.isInteger(null)  // false   Number.isInteger()  // false   Number.isInteger('25')  // false