# 基本類型
[toc]
## 基本數據類型
- Number
- String
- Boolean
- Object
- Null
- Undefined
## 類型識別
typeof
- Number->number
- String->string
- Boolean->boolean
- Object->object
- Null->object
- Undefined->undefined
## 原始類型和引用類型
原始類型
- Number
- String
- Boolean
- Null
- Undefined
引用類型
- Object
存儲的是指針
例子:連等
```javascript
var a = {n:1};
var b = a; // 持有a,以回查
a.x = a = {n:2};
alert(a.x);// --> undefined
alert(b.x);// --> {n:2}
```
事實上,解析器在接受到 `a = a.x = {n:2}` 這樣的語句后,會這樣做:
找到 `a` 和` a.x `的指針。如果已有指針,那么不改變它。如果沒有指針,即那個變量還沒被申明,那么就創建它,指向 `undefined`。
`a `是有指針的,指向` {n:1}`;`a.x` 是沒有指針的,所以創建它,指向 `undefined`。
然后把上面找到的指針,都指向最右側賦的那個值,即 `{n:2}`。
所以執行以后,就有了如下的變量關系圖。

http://pythontutor.com/visualize.html#mode=edit
- 頁面制作
- HTML
- 標簽
- css
- 選擇器
- 文本
- 盒模型
- 背景
- 布局
- 變形
- 過渡和動畫
- JavaScript程序設計
- 基礎篇
- 基本語法
- 基本類型
- 運算符與表達式
- 語句
- 數值
- 字符串
- 對象
- 數組
- 函數
- Date
- RegExp
- JSON
- 進階篇
- 類型進階
- 函數進階
- 原型
- 變量作用域
- 閉包
- 面向對象
- DOM編程藝術
- 基礎篇
- 文檔樹
- 節點操作
- 屬性操作
- 樣式操作
- 事件
- 數據通信
- 數據存儲
- 動畫
- 音頻與視頻
- canvas
- BOM
- 表單操作
- 列表操作
- 實踐篇
- 組件實踐
- 頁面架構
- CSS Reset
- 布局解決方案
- 居中布局
- 多列布局
- 全屏布局
- 響應式
- 頁面優化
- 規范與模塊化
- 規范
- 模塊化
- 產品前端架構
- 協作流程
- WEB系統
- 角色定義
- 協作流程
- 職責說明
- 接口設計
- 接口規范
- 規范應用
- 本地開發
- 版本管理
- 分支模型
- git
- 技術選型
- 模塊化
- 框架
- 開發實踐
- 系統設計
- 系統實現
- 測試發布