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