數值常用的屬性和方法

shuang發表於2020-06-03
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

相關文章