## 基本數據類型
- String
- Number
- undefined
- Obejct
- boolean
## ==與===
==會進行類型轉換后再進行比較,而===不會轉換直接比較
## 內置對象有哪些
- Object
- Array
- Boolean
- Number
- String
- Function
- Date
- RegExp
- Error
## Number類型轉換
原始類型值
```js
Number(324) // 324
Number('324') // 324
Number('324abc') // NaN
Number('') // 0
Number(true) // 1
Number(false) // 0
Number(undefined) // NaN
Number(null) // 0
parseInt('42 cats') // 42
parseInt('a42 cats') // NaN
parseInt('4a2 cats') // 4
parseInt(' 42 cats') // 42
Number('42 cats') // NaN
Number(' 42') // 42
```
對象
```
Number({a: 1}) // NaN
Number([1, 2, 3]) // NaN
Number([5]) // 5
```
第一步,調用對象自身的valueOf方法。如果返回原始類型的值,則直接對該值使用Number函數,不再進行后續步驟。
第二步,如果valueOf方法返回的還是對象,則改為調用對象自身的toString方法。如果toString方法返回原始類型的值,則對該值使用Number函數,不再進行后續步驟。
第三步,如果toString方法返回的是對象,就報錯。
## String數據類型轉換
```
String(123) // "123"
String('abc') // "abc"
String(true) // "true"
String(undefined) // "undefined"
String(null) // "null"
String({a: 1}) // "[object Object]"
String([1, 2, 3]) // "1,2,3"
```
## Boolean數據類型轉換
```
Boolean(undefined) // false
Boolean(null) // false
Boolean(0) // false
Boolean(NaN) // false
Boolean('') // false
Boolean(false); // false
Boolean(new Boolean(false)); // true
//其他的都是 true
```
對象的布爾值為true。
## 自動轉換
預期什么類型的值,就調用該類型的轉換函數。
```
//轉換為boolean
if && || ! ?:
//轉換成字符串
//包含字符串相加
//轉換成數值
//除了加法運算符(+)有可能把運算子轉為字符串,其他運算符都會把運算子自動轉成數值。
'5' - '2' // 3
'5' * '2' // 10
true - 1 // 0
false - 1 // -1
'1' - 1 // 0
'5' * [] // 0
false / '5' // 0
'abc' - 1 // NaN
null + 1 // 1
undefined + 1 // NaN
```
特殊運算
```
{}+{} // "[object Object][object Object]"
{}+[] // 0
[]+{} // "[object Object]"
[]+[] // ""
```
- Houser的個人Wiki
- Javascript
- 語言基礎
- 變量
- 操作符整理
- new
- Ajax
- 事件
- 遍歷
- 字符串轉數字方法
- 原型鏈
- apply/call/bind
- 異步編程
- 模塊化
- 繼承的方式
- 對象的創建方式
- 內存泄漏
- js延遲加載
- 數據類型
- typeof
- 垃圾回收
- 作用域
- 閉包
- this
- es6
- 代碼片段
- 對象拷貝
- Node.js
- 模塊
- 庫&框架
- Jquery
- 優點
- 組件庫
- React
- React原理
- Key的作用
- JSX
- Redux
- Mobx
- 生命周期
- Typescript
- HTML&CSS
- viewport meta
- websocket
- webwork
- web GL
- html全局屬性
- iframe
- 頁面間通訊
- SVG
- 盒模型
- 輸入url到顯示的過程
- BFC(塊格式化上下文)
- 動畫
- CSS 秘密花園
- 前端
- webpack
- 后端
- nginx
- springboot
- 網絡
- 跨域
- 網絡攻擊
- TCP
- Https
- Http狀態碼
- 緩存策略
- Http2
- 數據結構&算法
- 常用數據結構
- 開發&編碼
- Git
- 分支策略
- 基本操作
- VSCode
- 工具
- App開發
- ReactNative
- 項目&業務
- Docker
- 協作工具
- 前端性能優化
- 登錄授權
- 軟件工程
- 漸進增強和優雅降級
- 計算機基礎
- 設計模式
- 單例模式
- 工廠模式
- 發布訂閱模式
- 適配器模式
- 代理模式
- 外觀模式
- 命令模式
- 橋接模式
- 模板模式
- 職責鏈模式
- 正則