前言
資料型別轉換是我們在前端開發中經常遇到的場景,一般而言,在 JavaScript 中型別轉換有三種情況:
- 轉換為數字(呼叫 Number(),parseInt(),parseFloat()方法)
- 轉換為字串(呼叫.toString()或 String()方法)
- 轉換為布林值(呼叫 Boolean()方法)
需要注意的是:null、undefined 沒有.toString()
方法。
轉換為數字
Number(string) 方法
Number()
可以把任意值轉換成數字,如果要轉換的目標物件(一般是字串)中有不是數字的值,則會返回 NaN
。
Number('1') // 1
Number(true) // 1
Number('123s') // NaN
Number({}) //NaN
parseInt(string, radix)
解析一個字串並返回指定基數的十進位制整數,radix 是 2-36 之間的整數,表示被解析字串的基數。
parseInt('2') //2
parseInt('2',10) // 2
parseInt('2',2) // NaN
parseInt('a123') // NaN 如果第一個字元不是數字或者符號就返回NaN
parseInt('123a') // 123
parseFloat(string)
解析一個引數並返回一個浮點數。
parseFloat('123a') //123
parseFloat('123a.01') //123
parseFloat('123.01') //123.01
parseFloat('123.01.1') //123.01
隱式轉換
let str = '123'
-str // -123
str+1 // '1231'
+str+1 // 124
let res = str - 1 //122
轉換為字串
toString()
將目標物件轉換為字串。
注意:null,undefined 不能呼叫。
Number(123).toString() //'123'
[].toString() //''
true.toString() //'true'
String()
String()
的作用比較強大,它可以將任何傳入的值都轉為字串。
String(123) //'123'
String(true) //'true'
String([]) //''
String(null) //'null'
String(undefined) //'undefined'
String({}) //'[object Object]'
隱式轉換
當 + 兩邊有一個是字串,另一個是其它型別時,會先把其它型別轉換為字串再進行字串拼接,返回字串:
let a = 1
a + '' // '1'
轉換為布林值
Boolean()
Boolean()
方法會將以下值轉換為 false:
- 0
- “”
- null
- undefined
- NaN
其餘的所有值都會被轉換為 true。
Boolean('') //false
Boolean(0) //false
Boolean(1) //true
Boolean(null) //false
Boolean(undefined) //false
Boolean(NaN) //false
Boolean({}) //true
Boolean([]) //true
條件語句
在條件語句中,我們一般不會主動進行布林轉換。
let a
if(a) {
//... //這裡a為undefined,會轉為false,所以該條件語句內部不會執行
}
隱式轉換
let str = '111'
console.log(!!str) // true
總結
以上就是 JavaScript 基本資料型別轉換相關的知識總結,其中最需要注意的是隱士轉換。
~
~本文完,感謝閱讀!
~
學習有趣的知識,結識有趣的朋友,塑造有趣的靈魂!
大家好,我是〖程式設計三昧〗的作者 隱逸王,我的公眾號是『程式設計三昧』,歡迎關注,希望大家多多指教!
你來,懷揣期望,我有墨香相迎! 你歸,無論得失,唯以餘韻相贈!
知識與技能並重,內力和外功兼修,理論和實踐兩手都要抓、兩手都要硬!
本作品採用《CC 協議》,轉載必須註明作者和本文連結