數據類型
1: 原始類型 Boolean Null Undefined Number String Symbol
2: 對象
顯示類型轉換
- Number 函數
1:數值: 轉換後還是原來的值
2:字符串:如果可以被解析爲數值,則轉換爲對應的數值, 否則轉爲NaN 空字符串爲0
3:布爾值:true轉爲1 false 轉爲0
4:undefined: 轉爲NaN
5:null: 轉爲0
6:對象
1. 先調用對象自身的valueOf方法 如果該方法返回原始類型的值 則直接對該值使用Number方法 ,不在進行後續步驟
2. 如果valueOf返回的是複合類型的值 在調用對象自身的toString方法, 如果toString方法返回的是原始類型的值, 則對該值進行Number 方法 不在進行後續步驟
3. 如果toString 返回的是複合類型的值 則進行報錯
- String 函數
1:數值: 轉爲對應的字符串
2: 字符串: 轉換後還是原來的值
3:布爾值: true 轉爲'true' false 轉爲 'false'
4: undefined: 轉爲'undefined'
5: null: 轉爲'null'
6: 對象
1: 先調用對象自身的toString 方法 如果該方法返回原始類型的值, 則直接對該值使用String 方法 不在進行後續步驟
2: 如果toString 返回的是複合類型的值 在調用對象自身valueOf方法, 如果valueOf方法返回的是原始類型的值,則對該值進行String 方法 不在進行後續步驟
3: 如果valueOf 返回的類型是複合類型的值 則進行報錯
- Boolean 函數
1:undefined null +0 -0 NaN 空字符串 都是false
2:其餘的都是true
隱式類型轉換
- 四則運算
- 判斷語句
- native調用
1:console.log 轉爲字符串類型
2:alert 字符串類型
- 常見題目
1:[]+[]
2:[]+{}
3:{}+[]
4:{}+{}
5:true+true
6:1+{a:1}
typeof
1: Undefined > 'undefined'
2: Null > 'object'
3: Boolean > 'boolean'
4: Number > 'number'
5: String > 'string'
6: Symbol > 'symbol'
7: Host object > implementation-dependent
8: Function object > 'function'
9: any other object > 'object'