JS高級(jí)總復(fù)習(xí)
Javascript基礎(chǔ)復(fù)習(xí)
面向?qū)ο?/h3>
- 把解決問題的重點(diǎn)放在解決問題相關(guān)的對(duì)象上
- 封裝/繼承/多態(tài)
- 對(duì)象:無序的鍵值對(duì)
- 屬性:數(shù)值類型的
- 方法:函數(shù)類型的
- 創(chuàng)建對(duì)象的方法
- 字面量:用完之后不可復(fù)用
- 內(nèi)置對(duì)象創(chuàng)建:a)創(chuàng)建的是空對(duì)象芦岂,需要手動(dòng)添加屬性 b)動(dòng)態(tài)特性:創(chuàng)建好對(duì)象后,可以給對(duì)象添加屬性和方法
- 工廠函數(shù):定義一個(gè)對(duì)象,給他動(dòng)態(tài)添加屬性,返回
- 自定義構(gòu)造函數(shù):a)也是函數(shù)的一種,一般用來初始化對(duì)象 b)和new一起出現(xiàn)垫蛆,new創(chuàng)建一個(gè)對(duì)象禽最,構(gòu)造函數(shù)初始化對(duì)象 c)返回new創(chuàng)建的對(duì)象 d)如果return的基本類型,不影響袱饭,仍返回new對(duì)象 / 返回Object類型川无,返回這個(gè)Object
- 自定義構(gòu)造函數(shù)的執(zhí)行過程:a)先使用new創(chuàng)建對(duì)象 b)把new創(chuàng)建出來的對(duì)象交給構(gòu)造函數(shù)的this
c) 在構(gòu)造函數(shù)內(nèi)部通過this給對(duì)象封裝方法
- 原型
- 在構(gòu)造函數(shù)創(chuàng)建出來的時(shí)候默認(rèn)會(huì)創(chuàng)建一個(gè)與對(duì)象與之關(guān)聯(lián),這個(gè)對(duì)象就是原型對(duì)象
- 訪問 構(gòu)造函數(shù).prototype / 對(duì)象._ proto _
- 原型的使用:直接替換/混入式添加屬性和方法/經(jīng)典繼承
- 原型鏈:每個(gè)對(duì)象都有原型對(duì)象虑乖,原型對(duì)象又有原型對(duì)象
Function
- 創(chuàng)建函數(shù)
遞歸
- 化歸思想
- 案例:求和懦趋、階乘、斐波那契數(shù)列疹味、獲取所有頁(yè)面節(jié)點(diǎn)
作用域
- 詞法作用域
- 變量提升
- JS執(zhí)行階段
- 預(yù)解析階段
- 執(zhí)行階段
作用域鏈
- 外部無法訪問內(nèi)部作用域
- 內(nèi)部可訪問外部
閉包
- 封閉的對(duì)外不公開的空間
- 外面訪問不到
- 外部訪問只能通過內(nèi)部的接口
- 作用:保護(hù)數(shù)據(jù)
- 案例:返回多個(gè)值/設(shè)置及獲取仅叫、歌曲播放列表帜篇、解決斐波那契數(shù)列問題、閉包對(duì)緩存實(shí)現(xiàn)了一個(gè)保護(hù)作用
- jQuery實(shí)現(xiàn)緩存
- 定義一個(gè)對(duì)象存儲(chǔ)數(shù)據(jù)
- 定義一個(gè)數(shù)組存儲(chǔ)鍵:a)記錄順序 b)記錄長(zhǎng)度诫咱,超容量判斷
沙箱模式
- 一個(gè)封閉的對(duì)外隔離的環(huán)境
- 避免外界竊取內(nèi)部的數(shù)據(jù)
- 使用自調(diào)用(IIFE)函數(shù)實(shí)現(xiàn)
- 限制作用域
- 自調(diào)用函數(shù)沒有名字
- 代碼結(jié)構(gòu)
- 最上面:定義變量
- 中間:邏輯代碼
- 下面:暴露接口(有利于代碼壓縮)
1.最后及加上window
2.給函數(shù)一個(gè)形參
3.形參.變量 = 變量
- 作業(yè):封裝第三方插件笙隙、封裝框架
函數(shù)調(diào)用模式
- 函數(shù)調(diào)用模式
- this指向window
- 方法調(diào)用模式
- this指向與之關(guān)聯(lián)的對(duì)象
- 構(gòu)造函數(shù)調(diào)用模式
- this指向new創(chuàng)建的對(duì)象
- 上下文調(diào)用模式
- call(對(duì)象,[],[],..[])
- apply(對(duì)象坎缭,[])
- 可以用apply實(shí)現(xiàn)借用構(gòu)造函數(shù)
- 在當(dāng)前函數(shù)使用其他函數(shù).apply()
注冊(cè)事件兼容性
- addEventListenter(事件竟痰,處理函數(shù))
- attachEvent(on 事件,處理函數(shù))
- 回調(diào)函數(shù)的this的指向與其他兩個(gè)不同
- on事件 = 處理函數(shù)
- 案例:
- 歌曲管理案例
- 方法寫在原型
- 屬性寫在構(gòu)造函數(shù)內(nèi)
- Tab欄切換案例
- 屬性:數(shù)值類型的
- 方法:函數(shù)類型的
- 字面量:用完之后不可復(fù)用
- 內(nèi)置對(duì)象創(chuàng)建:a)創(chuàng)建的是空對(duì)象芦岂,需要手動(dòng)添加屬性 b)動(dòng)態(tài)特性:創(chuàng)建好對(duì)象后,可以給對(duì)象添加屬性和方法
- 工廠函數(shù):定義一個(gè)對(duì)象,給他動(dòng)態(tài)添加屬性,返回
- 自定義構(gòu)造函數(shù):a)也是函數(shù)的一種,一般用來初始化對(duì)象 b)和new一起出現(xiàn)垫蛆,new創(chuàng)建一個(gè)對(duì)象禽最,構(gòu)造函數(shù)初始化對(duì)象 c)返回new創(chuàng)建的對(duì)象 d)如果return的基本類型,不影響袱饭,仍返回new對(duì)象 / 返回Object類型川无,返回這個(gè)Object
- 自定義構(gòu)造函數(shù)的執(zhí)行過程:a)先使用new創(chuàng)建對(duì)象 b)把new創(chuàng)建出來的對(duì)象交給構(gòu)造函數(shù)的this
c) 在構(gòu)造函數(shù)內(nèi)部通過this給對(duì)象封裝方法
- 在構(gòu)造函數(shù)創(chuàng)建出來的時(shí)候默認(rèn)會(huì)創(chuàng)建一個(gè)與對(duì)象與之關(guān)聯(lián),這個(gè)對(duì)象就是原型對(duì)象
- 訪問 構(gòu)造函數(shù).prototype / 對(duì)象._ proto _
- 原型的使用:直接替換/混入式添加屬性和方法/經(jīng)典繼承
- 原型鏈:每個(gè)對(duì)象都有原型對(duì)象虑乖,原型對(duì)象又有原型對(duì)象
- 預(yù)解析階段
- 執(zhí)行階段
- 定義一個(gè)對(duì)象存儲(chǔ)數(shù)據(jù)
- 定義一個(gè)數(shù)組存儲(chǔ)鍵:a)記錄順序 b)記錄長(zhǎng)度诫咱,超容量判斷
- 最上面:定義變量
- 中間:邏輯代碼
- 下面:暴露接口(有利于代碼壓縮)
1.最后及加上window
2.給函數(shù)一個(gè)形參
3.形參.變量 = 變量
- this指向window
- this指向與之關(guān)聯(lián)的對(duì)象
- this指向new創(chuàng)建的對(duì)象
- call(對(duì)象,[],[],..[])
- apply(對(duì)象坎缭,[])
- 可以用apply實(shí)現(xiàn)借用構(gòu)造函數(shù)
- 在當(dāng)前函數(shù)使用其他函數(shù).apply()
- 回調(diào)函數(shù)的this的指向與其他兩個(gè)不同
- 歌曲管理案例
- 方法寫在原型
- 屬性寫在構(gòu)造函數(shù)內(nèi)
- Tab欄切換案例