第二章 詞法結構javascript
- JavaScript區分大小寫;/html不區分大小寫
- JavaScript會忽略程序中標識(token)之間的空格;
- 直接量:程序中直接使用的數據值;
- 標識符:字母、下劃線(_)、美圓($)
- 保留字:JavaScript把一些標識符拿出來作本身的關鍵字
第三章 類型、值和變量html
- 原始類型(primitive type):數字,字符串,布爾值
- 對象類型(object type)
- 兩個特殊的原始值:null,undefined
- 特殊的對象——數組,表示帶編號的值的有序集合
- 特殊的對象——函數,具備與它相關聯的可執行代碼的對象,經過調用函數來運行可執行代碼,並返回運算結果
- 若是用函數來初始化(new)一個新建對象,咱們稱之爲構造函數(constructor),每一個構造函數定義了一類(class)對象
- 另外三種有用的類:日期(Date),正則(RegExp),錯誤(Error)
- 原始類型 VS 對象類型,能夠擁有方法的類型 VS 不能夠,可變類型 VS 不可變
- 數字:Math,IEEE-754浮點數表示法,
- 文本:轉義字符,模式匹配
- 布爾值
- null,undefined
- 全局對象
- 包裝對象:存取數字,字符串或布爾值的屬性時建立的臨時對象
- 不可變的原始值,可變的對象引用:引用類型 VS 基本類型
- 類型轉換:顯式類型轉換,parseInt(),parseFloat(),toString(),toFixed(),toExponential(),toPrecision()
- 對象轉化爲原始值:toString(),valueOf()
- 變量聲明:重複的聲明 VS 遺漏的聲明
- 變量做用域(scope)
- 函數做用域和聲明提早:函數內聲明的全部變量在函數體內都是可見的。變量在聲明以前甚至就能夠用了——聲明提早。
- 當聲明一個全局變量時,就至關於定義了全局對象的一個屬性。當使用var聲明時,這個變量/屬性是不能夠delete的。
- 做用域鏈!!!
每一段javascript代碼(全局代碼或者函數)都有一個與之關聯的做用域鏈(scope chain)。java
這個做用域鏈是一個對象列表或鏈表,這組對象定義了這段代碼「做用域中」的變量。數組
當javascript作變量解析的時候,會從鏈中的第一個對象開始查找,一直到找到該變量,不然拋出一個引用錯誤(ReferenceError)。函數
在javascript頂層代碼中,做用域鏈由一個全局對象組成。htm