[TOC]
* * * * *
### 1. 標識符
就是變量、函數、屬性的名字,或者函數的名字。
第一個字符必須是字母、下劃線或者一個美元符號
* * * * *
### 2. 嚴格模式( `ECMAScript5` 引入)
在整個腳本中啟用,就需要在腳本頂部添加: `'use strict'` 。這時,針對 `ECMAScript3` 中的一些不確定的行為做處理,而且對某些不安全的操作也會拋出錯誤。
也可以在函數中啟用:
~~~
function () {
'use strict'
// 函數體
}
~~~
* * * * *
### 3. 變量
`ECMAScript` 的變量是松散類型的,即可以用來保存任何類型的數據,也可以說是一個用于保存值的占位符而已。
* * * * *
### 4. 數據類型
5種簡單數據類型:
`Undefined、Null、Boolean、Number、String` +1種復雜類型 `Object`
(`ES6` 新增了 `Symbol` 基礎類型)
`typeof` 變量 會出現以上這些的小寫形式。
* * * * *
### 5. `Undefined`
Undefined類型的引入(ECMAScript3),是為了正式區分空對象 指針與未經初始化的變量。所以如果一個變量用來表示對象,那么初始化時候就賦值為 null
* * * * *
### 6. `Boolean`
| 數據類型 | 轉換為 `true` | 轉換為 `false` |
| --- | --- | --- |
| `Boolean` | `true` | `false` |
| `String` | 任何非空字符串(包括' ')| 空字符串 '' |
| `Number` | 任何非零數字(包括無窮大)| 0和 `NaN` |
| `Object` | 任何對象 | `null` |
| `Undefined` | 不適用 | `undefined` |
`!!someVar` 也可以轉為 `Boolean` 值
* * * * *
### 7. `Number`
十進制,八進制,十六進制,浮點數(必須有小數點,且小數點后第一位為非0數字)
~~~
Infinity 正無窮大 -Infinity 負無窮大
NaN not a number 是一個特殊數值。
NaN==NaN // false
isNaN() 用來判斷一個變量是不是數字
~~~
* parseInt('',進制)
第一個參數是要轉化的字符串,第二個參數標明它是什么進制的數,最終是轉為十進制整數(忽略小數點后的數)
* parseFloat()
只解析十進制的值,其他的都當做無用字符串
* * * * *
### 8. `String`
除了值為 `undefined` 和 `null` 的變量外,其他的所有變量都有 `toString()` 方法
所以這兩個值如果要轉為字符串,只能使用 `String()`
* * * * *
### 9. Object類型
相關內容很多,后面具體說明
* * * * *
### 10. 函數的參數
每個函數體中都可以訪問一個變量 `arguments` ,這是一個類數組。由于修改里面的值后可能會反映到真實參數里,所以建議只是使用值就好了

* * * * *