【JavaScript高階】13、基礎總結深入筆記
阿新 • • 發佈:2019-01-09
資料型別的分類和判斷
- 基本(值)型別
- Number ----- 任意數值 -------- typeof
- String ----- 任意字串 ------ typeof
- Boolean ---- true/false ----- typeof
- undefined — undefined ----- typeof/===
- null -------- null ---------- ===
- 物件(引用)型別
- Object ----- typeof/instanceof
- Array ------ instanceof
- Function ---- typeof
資料,變數, 記憶體的理解
- 什麼是資料?
- 在記憶體中可讀的, 可傳遞的儲存了特定資訊的’東東’
- 一切皆資料, 函式也是資料
- 在記憶體中的所有操作的目標: 資料
- 什麼是變數?
- 在程式執行過程中它的值是允許改變的量
- 一個變數對應一塊小記憶體, 它的值儲存在此記憶體中
- 什麼是記憶體?
- 記憶體條通電後產生的儲存空間(臨時的)
- 一塊記憶體包含2個方面的資料
- 內部儲存的資料
- 地址值資料
- 記憶體空間的分類
- 棧空間: 全域性變數和區域性變數
- 堆空間: 物件
- 記憶體,資料, 變數三者之間的關係
- 記憶體是容器, 用來儲存不同資料
- 變數是記憶體的標識, 通過變數我們可以操作(讀/寫)記憶體中的資料
物件的理解和使用
- 什麼是物件?
- 多個數據(屬性)的集合
- 用來儲存多個數據(屬性)的容器
- 屬性組成:
- 屬性名 : 字串(標識)
- 屬性值 : 任意型別
- 屬性的分類:
- 一般 : 屬性值不是function 描述物件的狀態
- 方法 : 屬性值為function的屬性 描述物件的行為
- 特別的物件
- 陣列: 屬性名是0,1,2,3之類的索引
- 函式: 可以執行的
- 如何操作內部屬性(方法)
- .屬性名
函式的理解和使用
- 什麼是函式?
- 用來實現特定功能的, n條語句的封裝體
- 只有函式型別的資料是可以執行的, 其它的都不可以
- 為什麼要用函式?
- 提高複用性
- 便於閱讀交流
- 函式也是物件
- instanceof Object===true
- 函式有屬性: prototype
- 函式有方法: call()/apply()
- 可以新增新的屬性/方法
- 函式的3種不同角色
- 一般函式 : 直接呼叫
- 建構函式 : 通過new呼叫
- 物件 : 通過.呼叫內部的屬性/方法
- 函式中的this
- 顯式指定誰: obj.xxx()
- 通過call/apply指定誰呼叫: xxx.call(obj)
- 不指定誰呼叫: xxx() : window
- 回撥函式: 看背後是通過誰來呼叫的: window/其它
- 匿名函式自呼叫:
(function(w, obj){ //實現程式碼 })(window, obj)
- 專業術語為: IIFE (Immediately Invoked Function Expression) 立即呼叫函式表示式
- 回撥函式的理解
- 什麼函式才是回撥函式?
- 你定義的
- 你沒有呼叫
- 但它最終執行了(在一定條件下或某個時刻)
- 常用的回撥函式
- dom事件回撥函式
- 定時器回撥函式
- ajax請求回撥函式(後面講解)
- 生命週期回撥函式(後面講解)
- 什麼函式才是回撥函式?