書名: JavaScript重難點實例精講作者名: 周雄本章字數: 1061字更新時間: 2020-10-30 15:51:52
1.2 Number類型詳解
1.2.1 Number類型介紹
在JavaScript中,Number類型的數據既包括了整型數據,也包括了浮點型數據。
下面講解整型數據的處理規則。最基本的數值采用的是十進制整數,另外,數值還可以通過八進制或者十六進制表示。
① 八進制。如果想要用八進制表示一個數值,那么首位必須是0,其他位必須是0~7的八進制序列。如果后面位數的字面值大于7,則破壞了八進制數據表示規則,前面的0會被忽略,當作十進制數據處理。
var num1 = 024; // 20 var num2 = 079; // 79
其中num1首位為0,表示八進制數,然后判斷后面每位數值在0~7內,符合八進制數據表示規則,最后將其轉換為十進制數值2×8 + 4 = 20。
num2首位為0,表示八進制數,然后判斷后面每位的數值,最后一位9超出了八進制字面值,所以不屬于八進制數據,最終按照十進制處理,結果為79。
② 十六進制。如果想要用十六進制表示一個數值,那么前兩位必須是0x,其他位必須是十六進制序列(0~9,a~f或者A~F)。如果超過了十六進制序列,則會拋出異常。
var num3 = 0x3f; // 63 var num4 = 0x2g; // SyntaxError: Invalid or unexpected token
其中num3前兩位為0x,表示十六進制數據,然后判斷后面每位均屬于十六進制字面值區間,符合十六進制數表示,最后將其轉換為十進制數值3×16+15=63。
num4前兩位為0x,表示十六進制數據,然后判斷后面每位數值,最后一位g超出了十六進制所能表示的字面值區間,所以不滿足十六進制數據表示規則,最終拋出異常“SyntaxError:Invalid or unexpected token”。
此外,和Boolean類型一樣,當其他類型在與Number類型進行數據轉換時,也會遵循一定的規則。
(1)Boolean類型轉換為Number類型
· true轉換為1。
· false轉換為0。
(2)Null類型轉換為Number類型
· Null類型只有一個字面值null,直接轉換為0。
(3)Undefined類型轉換為Number類型
· Undefined類型只有一個字面值undefined,直接轉換為NaN。
(4)String類型轉換為Number類型
· 如果字符串中只包含數字,則會轉換成十進制數;如果前面有0,會直接省略掉,例如"0123"會轉換為123。
· 如果字符串中包含的是有效的浮點數,則同樣按照十進制轉換,例如"1.23"會轉換為1.23。
· 如果字符串中包含有效的十六進制格式,則會按照十進制轉換,例如"0x3f"會轉換為63。
· 如果是空字符串,則轉換為0。
· 如果字符串中包含了除上述格式以外的字符串,則會直接轉換為NaN。
(5)Object類型轉換為Number類型
· Object類型在轉換為Number類型時,會優先調用valueOf()函數,然后通過valueOf()函數的返回值按照上述規則進行轉換。如果轉換的結果是NaN,則調用toString()函數,通過toString()函數的返回值重新按照上述規則進行轉換;如果有確定的Number類型返回值,則結束,否則返回“NaN”。
Number類型作為一種常用的基本數據類型,開發人員在使用時往往會因為沒有理解到原理而踩到一些隱形坑。接下來就講解在使用Number類型數據或者函數時,需要注意的一些點。
- iOS開發實戰:從零基礎到App Store上架
- PyTorch Artificial Intelligence Fundamentals
- C語言程序設計
- JS全書:JavaScript Web前端開發指南
- Hands-On Swift 5 Microservices Development
- Creating Stunning Dashboards with QlikView
- Getting Started with Eclipse Juno
- Access 2010中文版項目教程
- JavaScript+jQuery網頁特效設計任務驅動教程
- Java Web應用開發給力起飛
- C語言程序設計
- Maven for Eclipse
- Visual Basic程序設計基礎
- Software Architecture with Python
- Offer來了:Java面試核心知識點精講(框架篇)