1. 程式人生 > >you are what you read

you are what you read

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/" onclick="popUp(this.href); return false; ">Example</a> 可以通過分離javascript,使得原始碼只需要這樣: <a href="http://www.example.com/" class="popup">example</a> javascript程式碼如下: window.onload=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.onload=func; }else{  window.onload=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。