JS 基礎知識深入

數據類型的分類和判斷

  • 基本(值)類型
    • 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請求回調函數
      • 生命週期回調函數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章