數(shù)據(jù)類型轉(zhuǎn)換
手動強制轉(zhuǎn)換
- 強制轉(zhuǎn)換主要指使用
Number()
草姻、String()
和Boolean()
三個函數(shù),手動將各種類型的值叔汁,分別轉(zhuǎn)換成數(shù)字傻挂、字符串和布爾值乘碑。
1.Number()
將任意類型的值轉(zhuǎn)化成數(shù)值。
原始類型值轉(zhuǎn)換規(guī)則:
// 數(shù)值:轉(zhuǎn)換后還是原來的值
Number(324) // 324
// 字符串:如果可以被解析為數(shù)值金拒,則轉(zhuǎn)換為相應的數(shù)值
Number('324') // 324
// 字符串:如果不可以被解析為數(shù)值兽肤,返回 NaN
Number('324abc') // NaN
// 空字符串轉(zhuǎn)為0
Number('') // 0
// 布爾值:true 轉(zhuǎn)成 1,false 轉(zhuǎn)成 0
Number(true) // 1
Number(false) // 0
// undefined:轉(zhuǎn)成 NaN
Number(undefined) // NaN
// null:轉(zhuǎn)成0
Number(null) // 0
對象轉(zhuǎn)換規(guī)則:
Number方法的參數(shù)是對象時绪抛,將返回NaN资铡,除非是包含單個數(shù)值的數(shù)組。
Number({a: 1}) // NaN
Number([1, 2, 3]) // NaN
Number([5]) // 5
2.String()
將任意類型的值轉(zhuǎn)化成字符串
原始類型值轉(zhuǎn)換規(guī)則:
String(123) // "123"
//數(shù)值:轉(zhuǎn)為相應的字符串幢码。
String('abc') // "abc"
//字符串:轉(zhuǎn)換后還是原來的值笤休。
String(true) // "true"
//布爾值:true轉(zhuǎn)為字符串"true",false轉(zhuǎn)為字符串"false"症副。
String(undefined) // "undefined"
//undefined:轉(zhuǎn)為字符串"undefined"店雅。
String(null) // "null"
//null:轉(zhuǎn)為字符串"null"。
對象轉(zhuǎn)換規(guī)則:
String方法的參數(shù)如果是對象贞铣,返回一個類型字符串闹啦;如果是數(shù)組,返回該數(shù)組的字符串形式辕坝。
String({a: 1}) // "[object Object]"
String([1, 2, 3]) // "1,2,3"
3.Boolean()
將任意類型的值轉(zhuǎn)為布爾值窍奋。
轉(zhuǎn)換規(guī)則:除了以下五個之為false,其他都為true:
undefined
null
0(包含-0和+0)
NaN
''(空字符串)
Boolean(undefined) // false
Boolean(null) // false
Boolean(0) // false
Boolean(NaN) // false
Boolean('') // false
所有對象(包括空對象)的轉(zhuǎn)換結(jié)果都是true