Appearance
cx
Appearance
当运算符在运算时,若两端数据类型不统一,编译器会帮我们自动转换成相同类型的数据,这就是隐式类型转换
const num1 = 2
const num2 = 0
const str1 = ''
const str2 = '253545'
const str3 = '25a3545'
const obj1 = {}
const obj2 = { a: 1 }
const obj3 = obj2
const arr1 = []
const arr2 = [0]
const arr3 = [0, 0]
const arr4 = [1, 2, 3]
const null1 = null
let undefined1
const fun = () => {}
console.log('---- 转string ----')
// number, null, undefined, Boolean
console.log(
String(num1),
String(num2),
String(true),
String(null1),
String(undefined1)
)
// 对象
// 普通对象 [object Object], [object Object]
console.log(String(obj1), String(obj2))
// 数组 '', '0', '0,0', '1,2,3'
console.log(String(arr1), String(arr2), String(arr3), String(arr4))
// 函数
console.log(String(fun))
// Map, Set, Date
console.log(String(new Map()), String(new Set()), String(new Date()))
console.log('---- 转number ----')
// 字符串
console.log(+str1, +str2)
// 对象
console.log(+obj1, +obj2)
// 数组
console.log(+arr1, +arr2, +arr3, +arr4)
// null
console.log(+null1)
// underfined
console.log(+undefined1)
console.log('---- 转boolean ----')
// 字符串
console.log(!!str1, !!str2)
// 对象
console.log(!!obj1, !!obj2)
// 数组
console.log(!!arr1, !!arr2, !!arr3, !!arr4)
// null
console.log(!!null1)
// underfined
console.log(!!undefined1)TODO