數據類型的分類和判斷 基本(值)類型 Number 任意數值 typeof String 任意字元串 typeof Boolean true/false typeof undefined undefined typeof/ null null 對象(引用)類型 Object typeof/insta ...
數據類型的分類和判斷
- 基本(值)類型
- 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請求回調函數
- 生命周期回調函數
- 什麼函數才是回調函數?