javascript筆記

1、嚴格的全等操作符 ===    嚴格不相等!==  不僅比較值,還會比較變量類型
2、函數名  駝峯命名法   , 變量 小寫和下劃線。  這樣容易區分出來哪些是變量 哪些是函數
3、宿主對象:向瀏覽器提供的預定義對象。包括from,element,image等。還有一種宿主對象也能獲得網頁上任何一個元素的信息,就是document對象。
4、

sibling 糾錯

英 ['sɪblɪŋ]  美 ['sɪblɪŋ] 

  • n. 兄弟姊妹;民族成員
5、getElementById返回一個對象,對應文檔裏的一個特定的節點
getElementsByName和getElementByclassName返回一個對象數組,分別對應着文檔裏的一組特定元素節點。
6、通過setAttribute對文檔做出修改後,再通過瀏覽器的查看源代碼,發現仍然是改變前的屬性值,所以,setAttribute做出的修改不會反映在文檔本身的源代碼裏,這種“表裏不一”的現象就是因爲DOM的工作模式,先加載文檔的靜態內容,再動態刷新,動態刷新不影響文檔的靜態內容。這就是DOM的真正威力,對頁面內容進行刷新卻不需要在瀏覽器刷新頁面。
7、五個基礎的DOM方法:getElementById,getElementsByTagName, getElementByClassName,getAttribute,setAttribute
8、DOM的幾個屬性 chileNodes   nodeType   nodeValue  firstChild  lastChild
9、

pseudo 糾錯

英 ['sjuːdəʊ]  美 ['sʊdo] 

  • n. 僞君子;假冒的人adj. 冒充的,假的
10、分離javascript
本來是這樣的:
<a href="http://www.example.com/" οnclick="popUp(this.href); return false; ">Example</a>
可以通過分離javascript,使得原代碼只需要這樣:
<a href="http://www.example.com/" class="popup">example</a>
javascript代碼如下:
window.οnlοad=prepareLinks;
function prepareLinks(){
if(!document.getElementsByTagName) return false;//漸進增強,向後兼容,確保在古老的瀏覽器裏也能正常瀏覽
var links= document.getElementsByTagName("a");
for(var i=0;i<links.length;i++){
if(links[i].getAttribute("class")=="popup"){
links[i].onclick = function(){
popUp(this.getAttribute("href"));
return false;
}
}
}
}
function popUp(winURL){
window.open(winURL,"popup","width=320,height=480");
}
11、

sniffing 糾錯

[snɪf] 

  • n. 嗅探v. 嗅聞;用鼻吸氣;發覺;嗤之以鼻地說(sniff的ing形式)
12、性能考慮
儘量少訪問DOM(只要查詢DOM中的某些元素,瀏覽器就會搜索整個DOM樹)
儘量減少標記(過多不必要的元素會增加DOM樹的規模,進而增加遍歷DOM樹以查找特定元素的時間)
衆多js文件合併到一個腳本文件中(減少加載頁面時發送的請求數量)
script標籤放到文檔末尾,</body>之前(可以讓頁面變得更快)這個建議正確嗎?(這一點還不是太理解==|||||)
壓縮腳本(多數情況下,應該有兩個腳本,一個是工作副本,一個是精簡副本,爲了區分,通常在精簡副本前加上min字樣。這個老版本書裏推薦的幾個代碼壓縮工具,不知道現在還流行不,先mark在這了:Douglas crockfrod的JSMin,雅虎的YUI Compressor,谷歌的closure compiler )
13、頁面加載完畢時執行多個函數,使用經典解決的函數:addLoadEvent
通用型函數,可以用於許多場合
function addLoadEvent(func){
var oldonload = window.onload;
if(typeof window.onload != 'function'){
window.οnlοad=func;
}else{ 
window.οnlοad=function(){
oldonload();
func();
}
}
}
這個函數把那些頁面加載完畢時執行的函數創建爲一個隊列。然後,如果想把某個函數添加到這個隊列裏,就寫:
addLoadEvent(firstFunction);
addLoadEvent(secondFunction);
14、DOM core方法
getElementById   getElementsByTagName   getAttribute  setAttribute
它們並不專屬於javascript,支持DOM的任何一種語言都可以使用它們。用途也並非僅限於處理網頁,可以用來處理任何一種標記語言(比如XML)編寫出來的文檔。
15、動態創建標記 傳統技術:document.write    innerHTML
DOM方法:createElement創建元素節點   createTextNode創建文本節點  appendChild   insertBefore
16、在DOM看來,一個文檔就是一棵節點樹。要從DOM的角度去思考問題。
17、元素節點—取值:1      屬性節點      文本節點
18、編寫一個insertAfter(DOM木有提供這個方法)
通用型函數,可以用於許多場合
function insertAfter(newElement,targetElement){
var parent = targetElement.parentNode;
if(parent.lastChild==targetElement){
parent.appendChild(newElement);
}else{
parent.insertBefore(newElement,targetElement.nextSibling);
}
}
19、Ajax技術的核心是XMLHttpRequest對象,服務器在向XMLHttpRequest對象發回響應時,瀏覽器會在不同階段更新readyState的值,有5個:
0 未初始化
1 正在加載
2 加載完畢
3 正在交互
4 完成
只要readyState屬性的值變爲4,就可以訪問服務器發送回來的數據了。
20、Ajax應用主要依賴於服務器端處理,而不是客戶端處理。Hijax就指的是 漸進增強地使用Ajax。

發佈了131 篇原創文章 · 獲贊 33 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章