03javascript網(wǎng)頁編程07-1004高級_第1頁
03javascript網(wǎng)頁編程07-1004高級_第2頁
03javascript網(wǎng)頁編程07-1004高級_第3頁
03javascript網(wǎng)頁編程07-1004高級_第4頁
03javascript網(wǎng)頁編程07-1004高級_第5頁
已閱讀5頁,還剩66頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

函數(shù)進(jìn)階JavaScript高級03天-昨日復(fù)習(xí)昨日復(fù)習(xí)構(gòu)造函數(shù)的原型是硬件系統(tǒng)

,實(shí)例對象的原型是硬件系統(tǒng)

構(gòu)造函數(shù)、原型對象、實(shí)例對象的三角關(guān)系硬件系統(tǒng)改變this指向的一個(gè)方法硬件系統(tǒng)遍歷數(shù)組使用硬件系統(tǒng)

過濾數(shù)組使用硬件系統(tǒng)去除字符串兩端的空格硬件系統(tǒng)獲取對象的屬性名系,返回值是系統(tǒng)設(shè)置或修改對象屬性______________JavaScript高級03天-昨日復(fù)習(xí)昨日復(fù)習(xí)構(gòu)造函數(shù)的原型是硬prototype系統(tǒng)

,實(shí)例對象的原型是__proto__

構(gòu)造函數(shù)、原型對象、實(shí)例對象的三角關(guān)系

1.構(gòu)造函數(shù)的prototype屬性指向了構(gòu)造函數(shù)原型對象2.實(shí)例對象是由構(gòu)造函數(shù)創(chuàng)建的,實(shí)例對象的__proto__屬性指向了構(gòu)造函數(shù)的原型對象3.構(gòu)造函數(shù)的原型對象的constructor屬性指向了構(gòu)造函數(shù),實(shí)例對象的原型的constructor屬性也指向了構(gòu)造函數(shù)改變this指向的一個(gè)方法call遍歷數(shù)組使用forEach

統(tǒng)

過濾數(shù)組使用filter

統(tǒng)去除字符串兩端的空格硬件trim

統(tǒng)獲取對象的屬性名系Object.keys

,返回值是數(shù)組統(tǒng)設(shè)置或修改對象屬性____Object.defineProperty______函數(shù)的定義和調(diào)用this嚴(yán)格模式高階函數(shù)閉包遞歸函數(shù)this遞歸閉包要點(diǎn)提示函數(shù)進(jìn)階導(dǎo)讀掌握程度:了解1.1函數(shù)進(jìn)階導(dǎo)讀視函數(shù)聲明方式函數(shù)表達(dá)式NewFunction要點(diǎn)提示函數(shù)的定義方式掌握程度:應(yīng)用1.2函數(shù)的定義方式結(jié)視練方式一:函數(shù)聲明方式function關(guān)鍵字(命名函數(shù));方式二:函數(shù)表達(dá)式(匿名函數(shù));方式三:newFunction(‘參數(shù)1’,‘參數(shù)2’,‘函數(shù)體’),參數(shù)和函數(shù)體一定要使用字符串包裹

;在開發(fā)過程中我們使用前兩種方式比較多,方式三書寫繁瑣,指向效率較低,使用頻率較少;函數(shù)也是屬于對象;1.3函數(shù)定義方式總結(jié)課堂問答練視知識總結(jié)結(jié)練習(xí)請書寫一個(gè)函數(shù)求兩個(gè)數(shù)的和,使用函數(shù)定義的三種方式。提示方式一:使用命名函數(shù)方式二:使用匿名函數(shù)(函數(shù)表達(dá)式)方式三:newFunction5分鐘1.4函數(shù)定義方式練習(xí)視結(jié)練函數(shù)的6種調(diào)用方式要點(diǎn)提示函數(shù)的調(diào)用方式掌握程度:應(yīng)用1.5函數(shù)的調(diào)用方式結(jié)視普通函數(shù)的調(diào)用對象中的函數(shù)調(diào)用構(gòu)造函數(shù)的調(diào)用DOM元素綁定事件調(diào)用函數(shù)定時(shí)器中調(diào)用函數(shù)立即執(zhí)行函數(shù)1.6函數(shù)的調(diào)用方式總結(jié)課堂問答視知識總結(jié)結(jié)函數(shù)的定義和調(diào)用this嚴(yán)格模式高階函數(shù)閉包遞歸this的指向在定義的時(shí)候是不明確的,this指向出現(xiàn)的多種情況要點(diǎn)提示函數(shù)內(nèi)部的this指向掌握程度:應(yīng)用2.1函數(shù)內(nèi)部的this指向結(jié)視普通函數(shù)this指向window對象的方法this指向的是對象構(gòu)造函數(shù)this指向構(gòu)造函數(shù)new出來的實(shí)例對象綁定事件函數(shù)this指向的是函數(shù)的調(diào)用者定時(shí)器函數(shù)this指向的是window立即執(zhí)行函數(shù)this指向的是window2.2this指向總結(jié)課堂問答知識總結(jié)視結(jié)call可以改變this指向,并立即調(diào)用函數(shù)參數(shù)如何是傳遞的call方法的應(yīng)用場景要點(diǎn)提示call方法及其應(yīng)用掌握程度:應(yīng)用2.3call方法及其應(yīng)用結(jié)視練2.4call方法總結(jié)課堂問答視知識總結(jié)結(jié)call可以調(diào)用函數(shù)call可以改變函數(shù)內(nèi)部的this指向使用call方法傳遞參數(shù)使用逗號隔開call方法一般應(yīng)用于繼承練練習(xí)請書寫一個(gè)函數(shù),求兩個(gè)數(shù)的和,調(diào)用的時(shí)候修改該函數(shù)內(nèi)部的this指向提示定義一個(gè)函數(shù)調(diào)用函數(shù)使用call方法注意參數(shù)的傳遞使用逗號隔開10分鐘2.5call方法練習(xí)視結(jié)練apply可以改變this指向,并立即調(diào)用函數(shù)參數(shù)如何是傳遞的apply方法的應(yīng)用場景要點(diǎn)提示apply方法及其應(yīng)用掌握程度:應(yīng)用2.6apply方法及其應(yīng)用結(jié)視練2.7apply方法總結(jié)課堂問答視知識總結(jié)結(jié)apply可以調(diào)用函數(shù)apply可以改變函數(shù)內(nèi)部的this指向使用apply方法傳遞參數(shù)使用數(shù)組傳遞apply方法一般應(yīng)用于操作數(shù)組數(shù)據(jù)練練習(xí)請書寫一個(gè)函數(shù),求兩個(gè)數(shù)的和,調(diào)用的時(shí)候修改該函數(shù)內(nèi)部的this指向提示定義一個(gè)函數(shù)調(diào)用函數(shù)使用apply方法注意參數(shù)的傳遞使用數(shù)組傳遞10分鐘2.8apply方法練習(xí)視結(jié)練bind可以改變函數(shù)的this指向是否會指行函數(shù)bind方法的應(yīng)該場景要點(diǎn)提示bind方法基本使用掌握程度:應(yīng)用3.1bind方法基本使用結(jié)視3.2bind方法總結(jié)課堂問答視知識總結(jié)結(jié)bind不會調(diào)用原來的函數(shù)可以改變原來函數(shù)內(nèi)部的this指向返回的是原函數(shù)改變this之后產(chǎn)生的新函數(shù)應(yīng)用場景:如果有的函數(shù)我們不需要立即調(diào)用,但是又想改變這個(gè)函數(shù)內(nèi)部的this指向此時(shí)用bind不調(diào)用函數(shù),只想改變函數(shù)的this指向要點(diǎn)提示bind方法應(yīng)用掌握程度:應(yīng)用3.3bind方法應(yīng)用結(jié)視練3.4bind方法應(yīng)用總結(jié)課堂問答視知識總結(jié)結(jié)bind不會調(diào)用原來的函數(shù)可以改變原來函數(shù)內(nèi)部的this指向返回的是原函數(shù)改變this之后產(chǎn)生的新函數(shù)應(yīng)用場景:如果有的函數(shù)我們不需要立即調(diào)用,但是又想改變這個(gè)函數(shù)內(nèi)部的this指向此時(shí)用bind練練習(xí)為按鈕綁定點(diǎn)擊事件,點(diǎn)擊完按鈕禁用按鈕,等待3s之后按鈕不禁用提示頁面中定義一個(gè)按鈕,并獲取綁定點(diǎn)擊事件點(diǎn)擊之后立馬禁用在延時(shí)器中等待3s之后按鈕不禁用,使用bind方法實(shí)現(xiàn),注意定時(shí)器中的this指向的是window,修改this指向10分鐘3.5bind方法練習(xí)視結(jié)練比較三個(gè)修改this指向方法的異同要點(diǎn)提示call和apply以及bind總結(jié)掌握程度:應(yīng)用3.6call和apply以及bind總結(jié)結(jié)視3.7call和apply以及bind總結(jié)課堂問答視知識總結(jié)結(jié)相同點(diǎn):都可以改變this指向不同點(diǎn):call和apply會調(diào)用函數(shù),并且改變函數(shù)內(nèi)部this指向call傳遞參數(shù)使用逗號隔開傳遞,apply傳遞參數(shù)使用數(shù)組傳遞bind不會調(diào)用函數(shù)應(yīng)用場景:call經(jīng)常做繼承apply經(jīng)常跟數(shù)組有關(guān)系.比如借助于數(shù)學(xué)對象實(shí)現(xiàn)數(shù)組最大值最小值bind不調(diào)用函數(shù),但是還想改變this指向.比如改變定時(shí)器內(nèi)部的this指向上午復(fù)習(xí)

函數(shù)的定義方式

this指向

改變this指向的三個(gè)方法

改變this指向的三個(gè)方法的區(qū)別

JavaScript高級03天-上午復(fù)習(xí)上午復(fù)習(xí)

函數(shù)的定義方式命名函數(shù)、匿名函數(shù)、newFunctionthis指向

六種情況改變this指向的三個(gè)方法call、apply、bind改變this指向的三個(gè)方法的區(qū)別三個(gè)方法都可以改變this指向,call和apply會立即調(diào)用函數(shù),bind不會立即調(diào)用,返回這個(gè)函數(shù)的拷貝,apply的參數(shù)是使用數(shù)組傳遞,call使用逗號隔開傳遞JavaScript高級03天-上午復(fù)習(xí)函數(shù)的定義和調(diào)用this嚴(yán)格模式高階函數(shù)閉包遞歸

什么是嚴(yán)格模式‘usestrict’要點(diǎn)提示什么是嚴(yán)格模式以及如何開啟嚴(yán)格模塊掌握程度:了解4.1什么是嚴(yán)格模式以及如何開啟嚴(yán)格模塊視答結(jié)1、如何開啟嚴(yán)格模式2、如何開啟嚴(yán)格模式4.2為什么使用嚴(yán)格模式如何開啟嚴(yán)格模式結(jié)課堂問答答視課堂問答4.3什么是嚴(yán)格模式以及如何開啟嚴(yán)格模塊總結(jié)課堂問答視知識總結(jié)結(jié)嚴(yán)格模式的產(chǎn)生:消除了Javascript語法的一些不合理、不嚴(yán)謹(jǐn)之處,減少了一些怪異行為。消除代碼運(yùn)行的一些不安全之處,保證代碼運(yùn)行的安全。提高編譯器效率,增加運(yùn)行速度。開啟嚴(yán)格模式:使用‘usestrict’。答嚴(yán)格模式下的代碼規(guī)范要點(diǎn)提示嚴(yán)格模式的變化掌握程度:了解4.4

嚴(yán)格模式的變化視4.5什么是嚴(yán)格模式以及如何開啟嚴(yán)格模塊總結(jié)課堂問答視知識總結(jié)結(jié)變量:在正常模式中,如果一個(gè)變量沒有聲明就賦值,默認(rèn)是全局變量.嚴(yán)格模式禁止這種用法,變量都必須先用var命令聲明,然后再使用嚴(yán)禁刪除已經(jīng)聲明變量。例如,deletex;語法是錯(cuò)誤的this指向問題:嚴(yán)格模式下全局作用域中函數(shù)中的this是undefined嚴(yán)格模式下,如果構(gòu)造函數(shù)不加new調(diào)用,this指向的是undefined如果賦值,會報(bào)錯(cuò)new實(shí)例化的構(gòu)造函數(shù)指向創(chuàng)建的對象實(shí)例。定時(shí)器this還是指向window事件、對象還是指向調(diào)用者函數(shù)變化函數(shù)不能有重名的參數(shù)函數(shù)必須聲明在最前面.新版本的JavaScript會引入“塊級作用域”(ES6中已引入)為了與新版本接軌,不允許在非函數(shù)的代碼塊內(nèi)聲明函數(shù)函數(shù)的定義和調(diào)用this嚴(yán)格模式高階函數(shù)閉包遞歸函數(shù)可以當(dāng)做參數(shù)來進(jìn)行傳遞,回調(diào)函數(shù)要點(diǎn)提示高階函數(shù)掌握程度:應(yīng)用5.1高階函數(shù)答結(jié)視練1、什么是高階函數(shù)5.2高階函數(shù)結(jié)課堂問答答視課堂問答練5.3高階函數(shù)總結(jié)課堂問答視知識總結(jié)結(jié)高階函數(shù)是對其他函數(shù)進(jìn)行操作的函數(shù),它接收函數(shù)作為參數(shù)或?qū)⒑瘮?shù)作為返回值輸出。答練練習(xí)將函數(shù)作為參數(shù)練習(xí),將函數(shù)作為返回值練習(xí)提示定義兩個(gè)函數(shù)函數(shù)1和函數(shù)21.將函數(shù)1作為參數(shù)傳遞給函數(shù)22.將函數(shù)1作為返回值傳遞給函數(shù)210分鐘5.4高階函數(shù)練習(xí)視結(jié)練答函數(shù)的定義和調(diào)用this嚴(yán)格模式高階函數(shù)閉包遞歸什么是閉包要點(diǎn)提示什么是閉包掌握程度:應(yīng)用6.1

什么是閉包結(jié)視6.2閉包概念總結(jié)課堂問答視知識總結(jié)結(jié)閉包(closure)指有權(quán)訪問另一個(gè)函數(shù)作用域中變量的函數(shù),一個(gè)作用域可以訪問另外一個(gè)函數(shù)的局部變量。延長變量的作用范圍要點(diǎn)提示閉包的作用掌握程度:應(yīng)用6.3閉包的作用結(jié)視6.4閉包作用總結(jié)課堂問答視知識總結(jié)結(jié)閉包的主要作用:延伸了變量的作用范圍。閉包,延長變量的作用范圍要點(diǎn)提示閉包應(yīng)用-點(diǎn)擊li打印當(dāng)前索引號掌握程度:應(yīng)用6.5閉包應(yīng)用-點(diǎn)擊li打印當(dāng)前索引號結(jié)視練6.6利用閉包的方式得到當(dāng)前l(fā)i的索引號總結(jié)課堂問答視知識總結(jié)結(jié)頁面中定義一個(gè)li列表獲取li的集合,進(jìn)行遍歷,為每個(gè)li綁定點(diǎn)擊事件,打印當(dāng)前l(fā)i的索引在循環(huán)內(nèi),創(chuàng)建立即執(zhí)行函數(shù),立即執(zhí)行函數(shù)內(nèi)部是包裹著點(diǎn)擊事件的,自執(zhí)行函數(shù)的參數(shù)是for循環(huán)的變量練練習(xí)一個(gè)li列表,為li綁定點(diǎn)擊事件,打印對應(yīng)的索引提示頁面中定義一個(gè)li列表獲取li的集合,進(jìn)行遍歷,為每個(gè)li綁定點(diǎn)擊事件,打印當(dāng)前l(fā)i的索引在循環(huán)內(nèi),創(chuàng)建立即執(zhí)行函數(shù),立即執(zhí)行函數(shù)內(nèi)部是包裹著點(diǎn)擊事件的,自執(zhí)行函數(shù)的函數(shù)參數(shù)是for循環(huán)的變量10分鐘6.7利用閉包的方式得到當(dāng)前l(fā)i的索引號練習(xí)視結(jié)練閉包,延長變量的作用范圍要點(diǎn)提示閉包應(yīng)用-3秒鐘之后打印li內(nèi)容掌握程度:應(yīng)用6.8閉包應(yīng)用-3秒鐘之后打印li內(nèi)容結(jié)視6.9閉包應(yīng)用-3秒鐘之后打印li內(nèi)容總結(jié)課堂問答視知識總結(jié)結(jié)頁面中定義一個(gè)li列表獲取li的集合,進(jìn)行遍歷,打印當(dāng)前l(fā)i內(nèi)容在循環(huán)內(nèi),創(chuàng)建立即執(zhí)行函數(shù),立即執(zhí)行函數(shù)內(nèi)部是包裹著延時(shí)器的函數(shù),自執(zhí)行函數(shù)參數(shù)是for循環(huán)的變量閉包,延長變量的作用范圍要點(diǎn)提示閉包應(yīng)用-計(jì)算打車價(jià)格掌握程度:應(yīng)用7.1閉包應(yīng)用-計(jì)算打車價(jià)格結(jié)視7.2閉包應(yīng)用-計(jì)算打車價(jià)格總結(jié)課堂問答視知識總結(jié)結(jié)定義一個(gè)自執(zhí)行函數(shù),自執(zhí)行函數(shù)內(nèi)部定義兩個(gè)局部變量(起步價(jià)和總價(jià))自執(zhí)行函數(shù)返回一個(gè)對象,對象內(nèi)部定義兩個(gè)方法(正常的總價(jià),擁堵的總價(jià))對象中的兩個(gè)函數(shù)返回總價(jià)將自執(zhí)行函數(shù)存儲到變量中,調(diào)用即可要點(diǎn)提示思考題(選講)掌握程度:應(yīng)用7.3思考題(選講)視閉包案例擴(kuò)varname="TheWindow";varobject={name:"MyObject",getNameFunc:function(){returnfunction(){;};}};

console.log(object.getNameFunc()())7.4閉包擴(kuò)展案例課堂問答視擴(kuò)展講解擴(kuò)varname="TheWindow";

varobject={

name:"MyObject",getNameFunc:function(){varthat=this;returnfunction(){;};}};console.log(object.getNameFunc()())函數(shù)的定義和調(diào)用this嚴(yán)格模式高階函數(shù)閉包遞歸遞歸是什么要點(diǎn)提示什么是遞歸函數(shù)掌握程度:應(yīng)用8.1什么是遞歸函數(shù)結(jié)視8.2遞歸總結(jié)課堂問答視知識總結(jié)結(jié)一個(gè)函數(shù)在內(nèi)部可以調(diào)用其本身,那么這個(gè)函數(shù)就是遞歸函數(shù)遞歸函數(shù)一定要有跳出條件函數(shù)內(nèi)部自己調(diào)用自己,注意跳出條件要點(diǎn)提示利用遞歸求階乘掌握程度:應(yīng)用8.3利用遞歸求階乘結(jié)視練8.4利用遞歸求階乘總結(jié)課堂問答視知識總結(jié)結(jié)定義函數(shù)fn,傳遞形參函數(shù)內(nèi)部調(diào)用自己注意要有跳出條件,如果參與運(yùn)算的數(shù)字等于1,直接終止跳出函數(shù)調(diào)用傳遞參數(shù)練練習(xí)利用遞歸求階乘提示定義函數(shù)fn,傳遞形參函數(shù)內(nèi)部調(diào)用自己注意要有跳出條件,如果參與運(yùn)算的數(shù)字等于1,直接終止跳出函數(shù)調(diào)用傳遞參數(shù)10分鐘8.5利用遞歸求階乘練習(xí)視結(jié)練什么是斐波那契數(shù)列函數(shù)內(nèi)部自己調(diào)用自己,注意跳出條件要點(diǎn)提示利用遞歸求斐波那契數(shù)列掌握程度:應(yīng)用8.6利用遞歸求斐波那契數(shù)列結(jié)視練8.7利用遞歸求斐波那契數(shù)列總結(jié)課堂問答視知識總結(jié)結(jié)特點(diǎn):前兩項(xiàng)的和正好是第三項(xiàng)的和定義函數(shù)fn,傳遞形參函數(shù)內(nèi)部調(diào)用自己注意要有跳出條件,如果參與運(yùn)算的數(shù)字等于11或者等于2,直接終止跳出函數(shù)調(diào)用傳遞參數(shù)練練習(xí)利用遞歸求斐波那契數(shù)列提示定義函數(shù)fn,傳遞形參函數(shù)內(nèi)部調(diào)用自己注意要有跳出條件,如果參與運(yùn)算的數(shù)字等于11或者等于2,直接終止跳出函數(shù)調(diào)用傳遞參數(shù)10分鐘8.8利用遞歸求斐波那契數(shù)列練習(xí)視結(jié)練要點(diǎn)提示利用遞歸遍歷數(shù)據(jù)(上)掌握程度:應(yīng)用9.1利用遞歸遍歷數(shù)據(jù)(上)結(jié)視9.2利用遞歸遍歷數(shù)據(jù)總結(jié)課堂問答視知識總結(jié)結(jié)定義一個(gè)復(fù)雜數(shù)組,數(shù)組元素為對象和數(shù)組,數(shù)組中還包含對象,對象中有id屬性,我們想要做輸入id號,就可以返回的數(shù)據(jù)對象定義函數(shù),定義兩個(gè)參數(shù),參數(shù)一為處理的數(shù)組,參數(shù)二為查詢的id函數(shù)內(nèi)部使用forEach遍歷數(shù)組,判斷輸入的id和數(shù)組元素中的元素的id是否匹配,如果匹配打印我們需要的結(jié)果,因?yàn)閿?shù)據(jù)嵌套多層,索引需要使用遞歸,函數(shù)內(nèi)部自己調(diào)用自己練要點(diǎn)提示利用遞歸遍歷數(shù)據(jù)(下)掌握程度:應(yīng)用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論