JavaScript Number (數值)-學習筆記

Thomas Hung
Thomas 學習筆記
7 min readApr 28, 2020

Number 物件也是數值型態的物件,Number 物件是以建構子 Number() 建立而成的。

建構式說明:

new Number(value)

參數 value : 用來建立物件的數值。

Number() 函數 — 型別轉換

  • 可以用來將其它的資料型態轉換成數值型態。

字串轉數字

Number('')  //0
Number(' ') //0
Number('a') //NaN
Number('null') //NaN
Number('undefined') //NaN
Number('0') //0
Number('1') //1

布林轉數字

Number(true) //1
Number(false) //0

Number 物件內建的方法 (Methods)

Number.isNaN(value)

  • 確認 value 值是否為 NaN ,並回傳布林值 truefalse
Number.isNaN(0)  //false
Number.isNaN('a') //false
Number.isNaN(undefined) //false
Number.isNaN(null) //false
Number.isNaN(true) //false
Number.isNaN(false) //false
Number.isNaN(NaN) //true
Number.isNaN(0 / 0) //true

Number.isFinite(value)

  • 判斷傳入值是否為有限的數值,並回傳布林值。
Number.isFinite("0") //false
Number.isFinite(null) //false
Number.isFinite(NaN) //false
Number.isFinite(undefined) //false
Number.isFinite(1 / 0) //false
Number.isFinite(Infinity) //false
Number.isFinite(-Infinity) //false
Number.isFinite(1) //true
Number.isFinite(2e64) //true
Number.isFinite(10 / 5) //true

Number.isInteger(value)

  • 判斷傳入值是否為整數,並回傳布林值。
Number.isInteger("0") //false
Number.isInteger(true) //false
Number.isInteger(NaN) //false
Number.isInteger(undefined) //false
Number.isInteger(1 / 0) //false
Number.isInteger(0.1) //false
Number.isFinite(-Infinity) //false
Number.isInteger(1) //true
Number.isInteger(2e64) //true
Number.isInteger(10 / 5) //true
Number.isInteger(-10) //true

parseFloat(string)

  • 用來將字串轉型成浮點數,此為全域方法。
  • 如無法轉換,則回傳 NaN
parseFloat('  3.14  ') //3.14
parseFloat('10.5') //10.5
parseFloat('10 100 200') //10
parseFloat('10 day') //10
parseFloat('day 10') //NaN

parseInt(string , radix)

  • 用來將字串轉成十進制整數,此為全域方法。
  • radix: 為2至36進位系統,如輸入10為十進制。
  • 如無法轉換,則回傳 NaN

以下範例都是回傳數值13

parseInt('1101',2) 
parseInt('15',8)
parseInt('d',16)
parseInt('13,dd',10)

Number.toExponential(fractionDigits)

  • 將數字轉型為科學記號型式(指數)呈現,回傳科學記號字串。
  • 參數 fractionDigits :可有可無,用來表示小數點後幾位數。
let num=66.123
num.toExponential(1) //"6.6e+1"
num.toExponential(2) //"6.61e+1"

Number.toFixed(digits)

  • 將數字轉成固定小數點位數,並回傳數值字串型態。
  • 回傳值會四捨五入。
  • 參數 digits :可有可無,預設為0,如位數不夠時,以0補位。
let num=66.456num.toFixed() //"66" 
num.toFixed(1) //"66.5" 四捨五入
num.toFixed(5) //"66.45600" 如位數不夠時,以0補位
(6.23e+20).toFixed(2) //"623000000000000000000.00"
(6.23e-20).toFixed(2) //"0.00"
(-6.23).toFixed(2) //"-6.23"

Number.toLocaleString([locales [, options]])

  • 某個數字在本地端的地區設定環境下表示法。
  • 不同地區可能會顯示不同的小數點或千位分隔符號。
  • 參數 locales :縮寫語言代碼。
  • 參數 options :屬性的類別如下:

'decimal' 用於純數字格式

'currency' 用於貨幣格式

'percent' 用於百分比格式

'unit' 用於單位格式

let num=66.456num.toLocaleString('ar-EG') // "٦٦٫٤٥٦"num.toLocaleString('ja-JP',{ style: 'currency', currency: 'JPY' }) //"¥66"

Number.toPrecision(precision)

  • 將數字以指定長度型式,並以字串回傳。
  • 回傳值會四捨五入。
  • 如指定的長度大於數值,則以0補位。
  • 如指定的長度小於數值,則用科學記號表示。
let num=66.456
num.toPrecision(1) //"7e+1" 指定的長度小於數值,科學記號表示
num.toPrecision(3) //"66.5"
66.5.toPrecision(2) //"67" 四捨五入
66.4.toPrecision(5) //"66.400" 指定的長度大於數值,以0補位

Number.toString([radix])

  • 將數值轉型成字串,並回傳字串型式。
  • 參數 radix :是介於2~32進制的整數,預設值為10。
  • 另一個用述,轉2~32進制的方法。
let num=8(10).toString() //"10"
(10.5).toString() //"10.5"
num.toString(2) //"1000"
num.toString(8) //"10"
num.toString(16) //"8"
(-10).toString(2) //"-1010"

Number.valueOf()

  • Number() 物件轉成基本數值型態,並回傳Number() 物件原始值。
let num=new Number(10)typeof num //"object"
num.valueOf() //10
typeof num.valueOf() //"number"

參考:Number

以上是我對 Number (數值) 的學習筆記 😉。

***如果有任何想法,也歡迎留言與我分享~***

--

--

Thomas Hung
Thomas 學習筆記

when you feel like quitting,think about why you started.