iT邦幫忙

2024 iThome 鐵人賽

DAY 28
0
Modern Web

JavaScript學習筆記系列 第 28

[Day 28] Number method常用介紹 - Number()、parseInt()、parseFloat()

  • 分享至 

  • xImage
  •  

Number()parseInt()parseFloat()都可以轉為數字的方法,其功能如下:

Number()

各型別轉換成數字。

字串轉數字

Number("123"); //123
Number("hello"); //字串非數字,嘗試轉型後回傳NaN

NaN (Not a Number),意思是「非數值」。使用typeof NaN會回傳"number"。

布林值轉數字

Number(true); //回傳1
Number(false); //回傳0

nullundefined 轉數字

Number(null); //回傳0
Number(undefined); //回傳NaN

物件與陣列轉數字

Number({}); //NaN
Number([]); //0
Number([123]); //123
Number([1, 2]); //NaN
Number({ age: 18 }); //NaN

parseInt()

JavaScript用來解析字串,轉換為整數(Integer)。可以指定進位制,沒有指定預設為十進位。

語法

parseInt(string, radix)

string:解析整數開頭的字串,會忽略字串開頭的空白字元,回傳整數或NaN。
radix(選填):指定進位制,介於2~36之間。若radix小於2或大於36,parseInt()會回傳NaN。為了避免解析錯誤,建議要加上radix。

MDN:
For radices above 10, letters of the English alphabet indicate numerals greater than 9. For example, for hexadecimal numbers (base 16), A through F are used. The letters are case-insensitive.
這裡還有說到,如果進位制大於10,會使用英文字母A-F(不區分大小寫)代表數字的10-15。
A = 10
B = 11
C = 12
D = 13
E = 14
F = 15

遇到無法解析的字元,就會停止,回傳有解析的部分,例如:

parseInt("258"); //258
parseInt("258abc"); //258,後面abc無法解析就停止

如果字串非數字開頭:

parseInt("hello123"); //NaN

如果是浮點數,取整數位,直接忽略小數位:

parseInt("3.14"); //3
parseInt("1.88"); //1

指定 radix 進制位:

parseInt("1010", 2); //2進制,回傳10
parseInt("1765", 8); //8進制,回傳1013
parseInt("0xb7", 16); //16進制,回傳183

如果沒有寫進制位,parseInt()不會識別這些前綴開頭,例如:0x0b

parseInt("0b101", 2); // 回傳5,有寫二進位
parseInt("0b101"); // 回傳0

所以parseInt("0b101")回傳0,是因為0b被看為無效字元,所以只解析到0就停止,並回傳0。

parseFloat()

將字串解析為浮點數。可解析整數、小數以及科學記號法表示的數字,進位部分只解析十進位字串。

語法

parseFloat(string)

string:解析字串中的數字,會忽略字串開頭的空白字元,回傳浮點數或NaN。

解析浮點數:

parseFloat("3.14"); //3.14

字串非數字開頭:

parseFloat("ABC3.14"); //回傳NaN,前面開頭ABC無法解析就停止

遇到無法解析的字元,就會停止,回傳有解析的部分,例如:

parseFloat("3.14ABC"); //回傳3.14

可以使用科學記號:能正確解析科學記號法的數字。

parseFloat("1.23e4");  // 回傳12300

以上分享~謝謝!

參考資料

MDN - Number()
MDN - parseInt()
MDN - parseFloat()


上一篇
[Day 27] String method常用介紹 - split()、trim()、charCodeAt()
下一篇
[Day 29] ES6功能介紹 - 箭頭函式、樣板字串、解構賦值、其餘參數、展開運算子
系列文
JavaScript學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言