ppk談javascript

第一章 目標(biāo)(討論javascript的目標(biāo)、技術(shù)概覽以及javascript的歷史,以說(shuō)明它的目標(biāo)是如何被重新定義的)

1.javascript的目標(biāo)是給web頁(yè)面增加一個(gè)額外的可用性層

2.胖客戶(hù)端(可用性)和瘦客戶(hù)端(可訪問(wèn)性)

3.可訪問(wèn)性和可用性

4.核心(使得javascript成為一門(mén)編程語(yǔ)言的基礎(chǔ),控制結(jié)構(gòu)、變量、函數(shù)和對(duì)象)

BOM(給瀏覽器窗口下達(dá)命令,讀取cookie,與其他窗口進(jìn)行通信)

事件(找出用戶(hù)執(zhí)行的動(dòng)作,并定義這些動(dòng)作將觸發(fā)的函數(shù))

DOM(學(xué)習(xí)和改變HTML文檔的結(jié)構(gòu))

CSS修改(學(xué)習(xí)和改變HTML文檔的css表現(xiàn))

數(shù)據(jù)檢索(從服務(wù)器下載新的數(shù)據(jù)而不刷新頁(yè)面)

5.所有腳本都使用核心語(yǔ)言、事件和DOM,因?yàn)樗心_本必須是一個(gè)程序(核心)、必須等待用戶(hù)采取某些行動(dòng)(事件)、必須更新頁(yè)面以提供反饋(DOM)。

第二章 大背景(討論javascript的上下文環(huán)境,應(yīng)是一個(gè)滿(mǎn)足可用性、可訪問(wèn)性和符合標(biāo)準(zhǔn)的網(wǎng)站,它的結(jié)構(gòu)層、表現(xiàn)層和行為層是分離的)

1.可訪問(wèn)性:網(wǎng)頁(yè)對(duì)任何人在任何環(huán)境下都是可持續(xù)訪問(wèn)的

2.可用性:基礎(chǔ)可用性到更好的使用網(wǎng)頁(yè)

第三章 瀏覽器(討論瀏覽器之間的兼容性問(wèn)題和處理它們的策略)

1.渲染引擎和javascript引擎

2.Firefox-Gecko/IE-Trident/Safari-KHTML/Opera-

3.兼容性問(wèn)題:不支持、合理的不同看法、有意為之的兼容性問(wèn)題、瀏覽器bug

4.對(duì)象檢測(cè)和瀏覽器檢測(cè)

第四章 準(zhǔn)備(討論javascript與HTML結(jié)構(gòu)層的交互、初始化和script標(biāo)簽)

1.良好的HTML/CSS結(jié)構(gòu)

2.鉤子:id,class,自定義屬性(不屬于HTML規(guī)范的屬性),名值對(duì)

3.準(zhǔn)備頁(yè)面:

清晰的描述用戶(hù)應(yīng)該做什么才會(huì)啟動(dòng)腳本(選擇合適的事件);

訪問(wèn)者到達(dá)你的頁(yè)面后會(huì)發(fā)生什么(確定訪問(wèn)者的狀態(tài));

是否需要訪問(wèn)某個(gè)特定資源(設(shè)置訪問(wèn));

修改HTML文檔(產(chǎn)生內(nèi)容);

是否需要定義HTML元素之間的關(guān)系,即發(fā)生在第一個(gè)元素上的事件是否會(huì)觸發(fā)另一個(gè)元素的變化(定義關(guān)系);

對(duì)文檔的大規(guī)模修改(修改文檔結(jié)構(gòu));

4.初始化:window.load=函數(shù)名;

第五章 核心(基礎(chǔ)、值、運(yùn)算符、變量、數(shù)字&字符串&布爾型、控制結(jié)構(gòu)、函數(shù)、對(duì)象、數(shù)組)

1.區(qū)分大小寫(xiě)、語(yǔ)句和分號(hào)、注釋、代碼塊{}、運(yùn)算符(操作數(shù)、優(yōu)先級(jí)、返回值)、值(函數(shù)作為值、變量、字面量)

2.數(shù)據(jù)類(lèi)型:數(shù)字、字符串、布爾值、對(duì)象(除了前三種都是對(duì)象,區(qū)別是對(duì)象可以被復(fù)制、被傳遞、還可以通過(guò)引用來(lái)比較,而不是通過(guò)值)、null(無(wú)值)、undefined()

3.typeof x;

函數(shù)-function

null-object

4.NaN非數(shù)字

“+”號(hào)

false:null、undefined、0、NaN、空字符串‘’

顯式類(lèi)型轉(zhuǎn)換:*1、-0、+‘’、!!

5.運(yùn)算符:

算術(shù)運(yùn)算符:自增自減、相等、不等

條件運(yùn)算符

6.變量名稱(chēng):小寫(xiě)駝峰式(字母,_,$,數(shù)字)

使用關(guān)鍵字聲明變量var

變量作用域(定義局部變量:var、參數(shù))

7.Math對(duì)象、toFixed()/parseInt()/parseFloat()

8.引號(hào)(包含引號(hào)時(shí)可以轉(zhuǎn)義)

創(chuàng)建了一個(gè)字符串,它就生成了一個(gè)String對(duì)象

length、indexOf()/lastindexOf()/chatAt()/substring()/split()/toLowerCase()/toUpperCase()

9.布爾運(yùn)算符 &&/||/!

10.if、swich、for、while、do-while、for-in、break/continue、try-catch-finally

11.function 函數(shù)名稱(chēng)(參數(shù)){返回值}

作為值的函數(shù)? 用()

內(nèi)嵌函數(shù)

12.自定義對(duì)象 兩種方法(new 對(duì)象字面量)

this關(guān)鍵字

全局對(duì)象

13.頭部插入unshift()、頭部刪掉shift()、尾部插入push()、尾部刪除pop()

第六章 BOM

1.window對(duì)象的作用:

它是javascript語(yǔ)言核心需要的全局對(duì)象;

它代表用戶(hù)可以在電腦屏幕上看到的瀏覽器窗口;

它可以訪問(wèn)載入到窗口中的HTML文檔;

它包含其他雜項(xiàng)休息和功能;

2.跨瀏覽器通信

導(dǎo)航:location對(duì)象和history對(duì)象

窗口幾何學(xué):screen對(duì)象、窗口尺寸、移動(dòng)&改變大小&滾動(dòng)窗口、獲得焦點(diǎn)和失去焦點(diǎn);

navigator對(duì)象、alert()、confirm、prompt()、setTimeOut()/clearTimeOut/setInterval()/clearInterval();

document對(duì)象;

3.cookie(設(shè)置、讀取、刪除)

名值對(duì)、有效期、目錄路徑、域

第七章 事件

1.javascript是一種事件驅(qū)動(dòng)的編程語(yǔ)言

2.事件(用戶(hù)采取的觸發(fā)腳本的行為)、

注冊(cè)事件處理程序(定義事件發(fā)生的時(shí)候哪一個(gè)函數(shù)被執(zhí)行)、

事件冒泡和捕獲(如果一個(gè)HTML元素和它的父元素處理同樣的事件時(shí),決定哪個(gè)事件處理程序先被觸發(fā))、

訪問(wèn)事件對(duì)象(事件對(duì)象保存著您的腳本可能需要的事件信息)、

目標(biāo)定位(找出你應(yīng)該對(duì)哪個(gè)元素執(zhí)行操作以作為對(duì)事件的響應(yīng))

3.鼠標(biāo)事件:click/dbclick/mouseover/mouseout/mouseover/mousedown/mouseup 可訪問(wèn)性問(wèn)題(用戶(hù)用鍵盤(pán)操作的時(shí)候)

鍵盤(pán)事件:

接口事件:blur/focus/change/contextmenu(點(diǎn)擊右鍵)/load/unload/readystatechange/reset/submit/resize/scroll

默認(rèn)操作和事件模擬

4.行內(nèi)事件處理程序、傳統(tǒng)模型、W3C模型(addEventListener/removeEventListener)、微軟模型(attachEvent/detachEvent)

5.事件冒泡(從下到上)和事件捕獲(從上到下)、

6.事件對(duì)象event對(duì)象:type(哪種事件)、發(fā)生事件的元素、鼠標(biāo)的位置、鼠標(biāo)按鍵、鍵盤(pán)屬性

7.找到目標(biāo)對(duì)象:target和srcElement、this

第八章 DOM

1.節(jié)點(diǎn)樹(shù)(節(jié)點(diǎn)類(lèi)型:文檔節(jié)點(diǎn)、元素節(jié)點(diǎn)、屬性節(jié)點(diǎn)、文本節(jié)點(diǎn))

2.尋找元素:

長(zhǎng)途:getElementById()/getElementsByTagName()

短途:parentNode/firstChild/lastChild/previousSibling/nextSibling

childNodes[]/children[](這個(gè)只包含元素節(jié)點(diǎn))

3.節(jié)點(diǎn)信息:nodeName/nodeValue/nodeType(元素節(jié)點(diǎn)是1、屬性節(jié)點(diǎn)是2、文本節(jié)點(diǎn)是3、文檔節(jié)點(diǎn)是9)

4.修改文檔樹(shù):appendChild()和insertBefore()/removeChild()/replaceChild()

5.創(chuàng)建&克隆元素:createElement()、createTextNode():按字面創(chuàng)建文本、clone()

6.innerHTML

7.屬性節(jié)點(diǎn)getAttribute/setAttribute

8.文本節(jié)點(diǎn)

9.節(jié)點(diǎn)列表

10.表單與0級(jí)DOM

第九章 CSS修改

1.style屬性

2.改變class

3.獲取樣式:currentStyle/window.getComputedStyle

4.元素的尺寸:clientWidth/clientHeight offsetWidth/offsetHight scrollWidth/scrollHeight scrollTop/ScrollLeft

第十章 數(shù)據(jù)檢索

1.創(chuàng)建一個(gè)XMLHttpRequest對(duì)象(隨瀏覽器類(lèi)型而定)

指示該對(duì)象打開(kāi)一個(gè)特定的文件(調(diào)用open(method,url,true)方法)

告訴該對(duì)象如何處理服務(wù)器返回的數(shù)據(jù)(注冊(cè)onreadystatechange事件處理程序)

給出指令讓該對(duì)象發(fā)送請(qǐng)求(調(diào)用send()方法);

2.GET是把數(shù)據(jù)作為查詢(xún)字符串追加在URL上,POST讓數(shù)據(jù)隨著HTTP請(qǐng)求的正文發(fā)送

3.響應(yīng)的格式:responseXML、responseText

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 原文: https://github.com/ecomfe/spec/blob/master/javascript...
    zock閱讀 3,476評(píng)論 2 36
  • 一、JS前言 (1)認(rèn)識(shí)JS 也許你已經(jīng)了解HTML標(biāo)記(也稱(chēng)為結(jié)構(gòu)),知道了CSS樣式(也稱(chēng)為表示),會(huì)使用HT...
    凜0_0閱讀 2,901評(píng)論 0 8
  • 第1章 認(rèn)識(shí)JS JavaScript能做什么?1.增強(qiáng)頁(yè)面動(dòng)態(tài)效果(如:下拉菜單、圖片輪播、信息滾動(dòng)等)2.實(shí)現(xiàn)...
    mo默22閱讀 1,492評(píng)論 0 5
  • 今天上午我們學(xué)校舉行了一場(chǎng)秋季運(yùn)動(dòng)會(huì)。早上我們準(zhǔn)時(shí)到校后,先在教室外面的走廊里排好隊(duì),然后一起走到了操場(chǎng),到...
    趙安琪1閱讀 529評(píng)論 0 0
  • 01 “你看,你的朋友某某也結(jié)婚了,找了個(gè)醫(yī)生。而你都24歲了,已經(jīng)不是小孩了,可是到現(xiàn)在你還什么都沒(méi)有,趕緊好好...
    媛心共許閱讀 657評(píng)論 7 9

友情鏈接更多精彩內(nèi)容