1. 程式人生 > >【JavaScript高階】13、基礎總結深入筆記

【JavaScript高階】13、基礎總結深入筆記

資料型別的分類和判斷

  • 基本(值)型別
    • 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請求回撥函式(後面講解)
      • 生命週期回撥函式(後面講解)