最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

JS的PPT學(xué)習(xí):復(fù)習(xí)和細(xì)節(jié)補(bǔ)充,函數(shù),閉包,原型機(jī)制,JSONP跨域訪問【詩書畫唱】

2021-04-07 17:28 作者:詩書畫唱  | 我要投稿

目錄:


JSADV1-復(fù)習(xí)和細(xì)節(jié)補(bǔ)充.ppt

JSADV2-函數(shù).ppt

JSADV3-閉包.ppt?

JSADV4-原型機(jī)制.ppt?

JSADV7-JSONP.ppt

一、單選多選框和下拉框

二、document的querySelector和querySelectorAll方法

三、表單驗(yàn)證以及表單自動(dòng)提交和手動(dòng)提交

四、事件對(duì)象和冒泡,動(dòng)態(tài)綁定元素的事件

五、JSON.parse和eval








JSADV1-復(fù)習(xí)和細(xì)節(jié)補(bǔ)充.ppt START


JSADV

JS復(fù)習(xí)及細(xì)節(jié)補(bǔ)充

回顧

JS基本核心語法(ECMAScript)

文檔對(duì)象模型(DOM)

瀏覽器對(duì)象模型(BOM)

本章目標(biāo)

復(fù)習(xí)JS基礎(chǔ)知識(shí)

補(bǔ)充一些JS的細(xì)節(jié)問題

輸出語句

注釋

數(shù)據(jù)類型

number

string

boolean

undefined

null

object


遍歷的兩種方式

for

foreach遍歷

Dom操作獲取元素

document.getElementById

getElementsByTagName

getElementsByClassName

getElementsByName

設(shè)置屬性

元素對(duì)象.屬性名 = ‘屬性值’

DOM對(duì)象的屬性和HTML的標(biāo)簽屬性幾乎是一致的,常用的有src、title、className、href和style,其中className對(duì)應(yīng)就是標(biāo)簽的class屬性,但是由于class在JS中是關(guān)鍵字,所以變成了className

設(shè)置樣式:

? ? 元素對(duì)象.style.樣式屬性 = ‘屬性值’

事件綁定(一)

嵌入dom

注意:這樣做很是不好,有下列兩大缺點(diǎn),這也是如今在開發(fā)中很難見到這樣綁定事件的原因。(1)存在一個(gè)時(shí)差問題,因?yàn)橛脩艨赡軙?huì)在HTML元素一出現(xiàn)在頁面上就觸發(fā)相應(yīng)的事件,但當(dāng)時(shí)的事件處理程序有可能尚不具備執(zhí)行條件(比如js代碼還沒有下載下來),由此會(huì)引發(fā)錯(cuò)誤。(2)HTML與js代碼緊密耦合。如果要更換事件處理程序,就要改動(dòng)兩個(gè)地方:HTML代碼和JS代碼,這非常不利于后期代碼的維護(hù)。所以這種方法在開發(fā)中基本不用。

事件綁定(二)

直接綁定

注意:這種方式只能給該元素綁定一個(gè)事件。不支持多播事件委托。

事件綁定(三)

事件監(jiān)聽

注意:addEventListener()添加事件,removeEventListener()刪除事件。可添加多個(gè),執(zhí)行順序與添加順序相同。

事件對(duì)象

在觸發(fā)DOM上的某個(gè)事件時(shí),會(huì)產(chǎn)生一個(gè)事件對(duì)象event。這個(gè)對(duì)象中包含著所有與事件有關(guān)的信息。包括導(dǎo)致事件的元素,事件的類型以及其他與特定事件相關(guān)的信息。

值類型和引用類型

JavaScript 中的值類型與引用類型的使用是有區(qū)別的。這和大部分的高級(jí)語言一樣。

邏輯或和邏輯與運(yùn)算符

JS中還包括另外一種邏輯運(yùn)算,它的表達(dá)式結(jié)果類型是不確定的,他們是邏輯或(||)和邏輯與(&&),這兩個(gè)運(yùn)算符支持短位運(yùn)算,但是不會(huì)強(qiáng)制轉(zhuǎn)換結(jié)果為布爾型的值。

兩個(gè)引用類型的比較

引用類型的等值比較,將直接“比較引用(的地址) ”。也就是說:如果不是同一個(gè)變量或其引用,則兩個(gè)變量不相等, 也不相同。

在對(duì)兩個(gè)引用類型 的比較運(yùn)算過程中,“==”與“===”并沒有任何的不同。


運(yùn)算優(yōu)先級(jí)

void是一個(gè)運(yùn)算符,所以我們可以計(jì)算void 1 + 2的值,void運(yùn)算符的優(yōu)先級(jí)比+高

,也是一種運(yùn)算符。

變量的作用域

由于JS的變量作用域只能達(dá)到函數(shù)一級(jí)(而非語句塊一級(jí)),因此這里聲明變量,與在for語句之外聲明變量沒有什么區(qū)別。

缺省對(duì)象的指定

JS提供with語句,以使得開發(fā)人員可以在一個(gè)代碼塊中顯式地指定缺省對(duì)象。如果不指定缺省對(duì)象,則默認(rèn)使用宿主程序在全局指定的缺省對(duì) 象(在瀏覽器環(huán)境中的缺省對(duì)象是 window)。


逗號(hào)的二義性

[]的二義性

總結(jié)

JS基本語法的復(fù)習(xí)

一些JS的細(xì)節(jié)問題




JSADV1-復(fù)習(xí)和細(xì)節(jié)補(bǔ)充.ppt END


JSADV2-函數(shù).ppt START


JSADV

函數(shù)

回顧

JS的基礎(chǔ)知識(shí)

JS的細(xì)節(jié)問題

本章目標(biāo)

函數(shù)

函數(shù)概述

在JS中,函數(shù)包含一組語句,是JS的基礎(chǔ)模塊單元,用于代碼復(fù)用、信息隱藏和組合調(diào)用。函數(shù)用于指定對(duì)象的行為。一般來說,所謂的編程,就是將一組需求分解成一組函數(shù)和數(shù)據(jù)結(jié)構(gòu)的技能。 注意:在JS中,函數(shù)就是對(duì)象,因此函數(shù)可以保存在變量、對(duì)象和數(shù)組中,也可以當(dāng)作參數(shù)傳遞給其他的函數(shù),函數(shù)的返回值也可以是函數(shù)。

創(chuàng)建函數(shù)的三種方法

在JS中,可以通過三種方式創(chuàng)建函數(shù):

1、函數(shù)聲明

2、函數(shù)字面量

3、構(gòu)造函數(shù)

函數(shù)聲明

這種方式定義的函數(shù)不屬于任何對(duì)象,始終是默認(rèn)的全局對(duì)象。

注意:這樣聲明的函數(shù)可以在函數(shù)定義前調(diào)用。因?yàn)樵贘S的最頂層,都有一個(gè)預(yù)編譯處理機(jī)制

函數(shù)表達(dá)式

這樣定義的函數(shù)會(huì)存儲(chǔ)在一個(gè)變量中。不能在定義之前調(diào)用。

構(gòu)造函數(shù)

通過new Function構(gòu)造函數(shù)。

調(diào)用函數(shù)的方法

JS中的函數(shù)有四種調(diào)用方式:

1、方法調(diào)用模式 2、函數(shù)調(diào)用模式 3、構(gòu)造器調(diào)用模式 4、apply調(diào)用模式

方法調(diào)用

當(dāng)一個(gè)函數(shù)保存為對(duì)象的一個(gè)屬性時(shí),我們稱它為一個(gè)方法。當(dāng)一個(gè)方法被調(diào)用時(shí),this被綁定到該對(duì)象。

函數(shù)調(diào)用模式

當(dāng)一個(gè)函數(shù)并非一個(gè)對(duì)象的屬性時(shí),它就被當(dāng)作一個(gè)函數(shù)來調(diào)用,以這種方式調(diào)用函數(shù)時(shí),this被綁定到了全局對(duì)象。

構(gòu)造器調(diào)用模式

因?yàn)镴S是一門基于原型繼承的語言,因此可以在創(chuàng)建對(duì)象時(shí)直接從其他對(duì)象繼承屬性。如果在一個(gè)函數(shù)前面帶上了new關(guān)鍵字來調(diào)用,那么將會(huì)創(chuàng)建一個(gè)連接到該函數(shù)的prototype成員的新對(duì)象,同時(shí)this會(huì)被綁定到這個(gè)新對(duì)象上。

Apply調(diào)用模式

在JS中,函數(shù)也是對(duì)象,因此函數(shù)也可以擁有方法。調(diào)用函數(shù)的apply方法,需要傳入兩個(gè)參數(shù),第一個(gè)參數(shù)是綁定到函數(shù)中this變量的對(duì)象,第二個(gè)參數(shù)是原函數(shù)的參數(shù)值列表。

JS函數(shù)中的內(nèi)置對(duì)象arguments

? 每個(gè)JS函數(shù)都有一個(gè)內(nèi)置對(duì)象,它的作用是:

調(diào)用該函數(shù)時(shí)可以傳遞任意參數(shù)!

arguments對(duì)象是一個(gè)類似于數(shù)組的對(duì)象。

arguments對(duì)象的length屬性:獲取函數(shù)的實(shí)參個(gè)數(shù)!

利用arguments對(duì)象特性,實(shí)現(xiàn)模擬函數(shù)的重載的效果.

JS函數(shù)中的內(nèi)置對(duì)象arguments

arguments.callee

arguments.callee 在哪一個(gè)函數(shù)中運(yùn)行,它就代表哪個(gè)函數(shù)。 一般用在匿名函數(shù)中。

在匿名函數(shù)中有時(shí)會(huì)需要自己調(diào)用自己,但是由于是匿名函數(shù),沒有名字,無名可調(diào),這時(shí)就可以使用arguments.callee來調(diào)用。


總結(jié)

函數(shù)


? ? ??




JSADV2-函數(shù).ppt END


JSADV3-閉包.ppt START

JSADV

閉包

回顧

函數(shù)的三種創(chuàng)建方式

函數(shù)的四種調(diào)用方法

本章目標(biāo)

閉包

什么是閉包

閉包是指有權(quán)訪問另一個(gè)函數(shù)作用域變量的函數(shù),創(chuàng)建閉包的通常方式,是在一個(gè)函數(shù)內(nèi)部創(chuàng)建另一個(gè)函數(shù)

一個(gè)閉包的例子

當(dāng)在一個(gè)函數(shù)中定義內(nèi)部函數(shù)時(shí),內(nèi)部的函數(shù)可以訪問外部函數(shù)的上下文環(huán)境,這就被稱為閉包。

閉包的難點(diǎn)

判斷作用域指向的變量對(duì)象是否相同

閉包的難點(diǎn)

判斷變量對(duì)象中變量的值

執(zhí)行環(huán)境和變量對(duì)象在運(yùn)行函數(shù)時(shí)生成

一個(gè)糟糕的例子

假設(shè)在以后的項(xiàng)目中,我們需要對(duì)所有的input表單元素綁定一個(gè)點(diǎn)擊事件。如下所示:

解決這個(gè)問題

構(gòu)造一個(gè)幫助函數(shù),對(duì)事件處理中的動(dòng)態(tài)的i值進(jìn)行處理。

閉包的用途

匿名自執(zhí)行函數(shù)

閉包的用途

實(shí)現(xiàn)封裝

閉包的用途

實(shí)現(xiàn)面向?qū)ο笾械膶?duì)象,傳統(tǒng)的對(duì)象語言都提供類的模板機(jī)制

總結(jié)

閉包的使用




JSADV3-閉包.ppt END


JSADV4-原型機(jī)制.ppt START



JSADV

原型機(jī)制

回顧

閉包的概念

閉包的作用

本章目標(biāo)

JS中的原型機(jī)制

普通對(duì)象和函數(shù)對(duì)象

凡是通過 new Function() 創(chuàng)建的對(duì)象都是函數(shù)對(duì)象,其他的都是普通對(duì)象。

JS中的構(gòu)造函數(shù)

實(shí)例的構(gòu)造函數(shù)屬性(constructor)指向構(gòu)造函數(shù)

原型對(duì)象(一)

在JS中,每當(dāng)定義一個(gè)對(duì)象(函數(shù)也是對(duì)象)時(shí)候,對(duì)象中都會(huì)包含一些預(yù)定義的屬性。其中每個(gè)函數(shù)對(duì)象都有一個(gè)prototype 屬性,這個(gè)屬性指向函數(shù)的原型對(duì)象。

原型對(duì)象(二)

實(shí)質(zhì)上,函數(shù)對(duì)象的prototype屬性就是一個(gè)對(duì)象,這個(gè)對(duì)象會(huì)自動(dòng)帶有一個(gè)constructor屬性,該屬性就是Stu函數(shù)本身。即Stu.prototype.constructor == Stu(有點(diǎn)繞了)

原型對(duì)象(三)

我們可以發(fā)現(xiàn):




但是Function.prototype 除外,它是函數(shù)對(duì)象,但它很特殊,他沒有prototype屬性

__proto__屬性

JS 在創(chuàng)建對(duì)象(不論是普通對(duì)象還是函數(shù)對(duì)象)的時(shí)候,都有一個(gè)叫做__proto__ 的內(nèi)置屬性,用于指向創(chuàng)建它的構(gòu)造函數(shù)的原型對(duì)象。

new關(guān)鍵字的作用

在JS中new出一個(gè)對(duì)象的過程分為三步:




1、var s1={}; 初始化一個(gè)對(duì)象s1。

2、s1._proto_=Stu.prototype;將對(duì)象s1的 __proto__ 屬性設(shè)置為 Stu.prototype。

3、Stu.call(s1);調(diào)用構(gòu)造函數(shù)Stu來初始化s1。


總結(jié)

原型的理解和運(yùn)用

? ? ??





JSADV4-原型機(jī)制.ppt END

JSADV7-JSONP.ppt START




JSADV

JSONP

本章目標(biāo)

JSONP原理

為什么要使用JSONP(一)

ajax直接請(qǐng)求普通文件存在跨域無權(quán)限訪問的問題,甭管你是靜態(tài)頁面、動(dòng)態(tài)網(wǎng)頁、web服務(wù)、WCF,只要是跨域請(qǐng)求,請(qǐng)求執(zhí)行完后一律不準(zhǔn)再次運(yùn)行回調(diào)函數(shù)中的js代碼。但是我們發(fā)現(xiàn),web頁面上調(diào)用js文件時(shí)則不受是否跨域的影響(不僅如此,我們還發(fā)現(xiàn)凡是擁有src這個(gè)屬性的標(biāo)簽都擁有跨域的能力,比如<script>、<img>、<iframe>

為什么要使用JSONP(二)

如果想通過純web端(ActiveX控件、服務(wù)端代理、屬于未來的HTML5之Websocket等方式不算)跨域訪問數(shù)據(jù)就只有一種可能,那就是在遠(yuǎn)程服務(wù)器上設(shè)法把數(shù)據(jù)裝進(jìn)js格式的文件里,供客戶端調(diào)用和進(jìn)一步處理。


解決跨域問題的方式

通過jsonp跨域

document.domain + iframe跨域

location.hash + iframe

window.name + iframe跨域

postMessage跨域

跨域資源共享(CORS)

nginx代理跨域

nodejs中間件代理跨域

WebSocket協(xié)議跨域

JSONP客戶端實(shí)現(xiàn)(一)

假設(shè)遠(yuǎn)程服務(wù)器eclipse上有一個(gè)名為demo的項(xiàng)目,項(xiàng)目的WebContent目錄下有一個(gè)js/remote.js的腳本文件。

JSONP客戶端實(shí)現(xiàn)(二)

在本地服務(wù)器HBuilder上有一個(gè)index.html頁面,運(yùn)行該頁面,可以發(fā)現(xiàn)腳本順利運(yùn)行。

JSONP客戶端實(shí)現(xiàn)(三)

在index.html頁面添加一個(gè)函數(shù)。

JSONP客戶端實(shí)現(xiàn)(四)

修改遠(yuǎn)程服務(wù)器eclipse中remote.js的代碼:

JSONP客戶端實(shí)現(xiàn)(五)

如果本地函數(shù)很多,那么怎么才能讓remote.js知道它應(yīng)該調(diào)用的本地函數(shù)名呢?

JSONP客戶端實(shí)現(xiàn)(五)

在遠(yuǎn)程服務(wù)器eclipse中創(chuàng)建一個(gè)servlet,代碼入下:

JSONP客戶端實(shí)現(xiàn)(六)

為了避免每次調(diào)用都要寫一個(gè)<script>標(biāo)簽,我們將本地的js代碼修改為動(dòng)態(tài)調(diào)用js。

jQuery中的JSONP調(diào)用



JSADV7-JSONP.ppt END


JS的PPT學(xué)習(xí):復(fù)習(xí)和細(xì)節(jié)補(bǔ)充,函數(shù),閉包,原型機(jī)制,JSONP跨域訪問【詩書畫唱】的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
乌苏市| 平和县| 扎鲁特旗| 绥棱县| 临西县| 安龙县| 英山县| 拉萨市| 邹城市| 定襄县| 三都| 普陀区| 行唐县| 垫江县| 家居| 景德镇市| 辽宁省| 深圳市| 萨嘎县| 阳原县| 鄱阳县| 元氏县| 荣成市| 松桃| 丹凤县| 宽城| 苗栗市| 河东区| 霍邱县| 丽江市| 南木林县| 海兴县| 读书| 荔波县| 武功县| 郧西县| 永川市| 京山县| 禹城市| 林芝县| 资源县|