JavaScript類型轉換(型別轉換)
了解 JavaScript 類型轉換的基礎知識
即使 JavaScript 是一種弱類型語言,您可能需要將值從一種類型轉換為另一種類型。
在 JavaScript 中,我們有以下原始類型:
以及對象類型:
(還有 null
和 undefined
,但從它們轉換到其他類型沒有意義)
例如,您可能想要進行以下轉換:
- 將數字轉換為字符串
- 將字符串轉換為數字
- 將字符串轉換為布爾值
- 將布爾值轉換為字符串
等等。
以下是您可以使用的技巧將一種類型轉換為另一種類型。我將涵蓋最常見的情況。
轉換為字符串
通常,從任何值轉換為字符串通常只需在任何值上調用 toString()
方法,JavaScript 將創建與該類型對應的字符串值。或者,您可以將任何值傳遞給 String()
全局函數。
從數字轉換為字符串
使用 String
全局函數,或者使用數字類型的 toString()
方法:
1 | String(10) //"10" |
從布爾值轉換為字符串
使用 String
全局函數或布爾類型的 toString()
方法:
1 | String(true) //"true" |
從日期轉換為字符串
使用 String
全局函數或日期類型的 toString()
方法:
1 | String(new Date('2019-01-22')) |
字符串的特殊情況
1 | String(null) //"null" |
轉換為數字
從字符串轉換為數字
我們可以使用 Number()
全局函數來實現這一點,這是一種類似於構造函數的方法。我們可以將字符串傳遞給它,JavaScript 將找出如何將其轉換為數字:
1 | Number("1") //1 |
在轉換為數字之前,字符串會被修剪:
1 | Number(" 1 ") //1 |
傳遞空字符串的預設值為 0:
1 | Number("") //0 |
如果字符串包含無效字符,將生成 NaN
。
這些是轉換為數字的基礎知識,但在如何將字符串轉換為數字的 JavaScript中,我提供了更多細節。還有其他方法可以從字符串生成數字,包括 parseInt()
、parseFloat()
、Math.floor()
和單元 +
運算符。
從布爾值轉換為數字
就像轉換為字符串一樣,將布爾值傳遞給 Number()
將返回 0 或 1:
1 | Number(true) //1 |
從日期轉換為數字
如果將日期對象傳遞給 Number()
,它將返回日期的時間戳,這是最好的日期到數字的轉換方式。
數字的特殊情況
1 | Number(null) //0 |
轉換為布爾值
通過將值傳遞給 Boolean()
,可以將任何值轉換為布爾值。
除了以下情況外,所有值都將解析為 true
:
1 | Boolean(false) //false |
tags: [“JavaScript”, “Type Conversion”, “Casting”, “Number”, “String”, “Boolean”, “Symbol”, “Object”]