1. 程式人生 > 實用技巧 >JavaScript高階(01_js基礎深入)

JavaScript高階(01_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請求回撥函式(後面講解)

      • 生命週期回撥函式(後面講解)