第一章 目標(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