摘要:編程藝術第版筆記第章簡史的起源是公司和公司合作開發的。第章文檔對象用戶定義對象內建對象如等。宿主對象由瀏覽器提供的對象。偽協議非標準化的協議。結構樣式行為要分離。壓縮腳本第章案例研究圖片庫改進版共享事件函數需要多個函數都在頁面加載時執行。
《JavaScript DOM 編程藝術(第2版)》筆記
第1章:JavaScript 簡史JavaScript 的起源
JavaScript 是 Netscape 公司和 Sun 公司合作開發的。
DOM
DOM 是一套對文檔的內容進行抽象和概念化的方法。
瀏覽器戰爭
今天,幾乎所有的瀏覽器都內置了對 DOM 的支持,只要遵循 DOM 標準,就可以放心大膽的去做。第2章:JavaScript 語法
語句
建議在每條語句末尾都加上分號。
注釋
// 單行注釋 /* 多行注釋 多行注釋*/
變量
var mood = "happy"; var age = 33;
數據類型
字符串
數值
布爾值
數組
數組
關聯數組
對象
操作符
算術操作符
+ ,-,*,/,++,--,+=
比較操作符
>,=,<,>=,<=,==,!=,===.......
==并不表示嚴格相等,認為 false 與 "" 表示的含義相同。
false == ""; // true
=== 進行嚴格比較,不僅比較值,而且比較變量的類型。
false === ""; // false
邏輯操作符
條件語句和循環語句
if (condions) { statemen}
while循環
while (conditions) { statements; }
for 循環
函數與對象
函數:
function name(arguments) { statements; }
對象(object):
對象是一種非常重要的數據類型。
對象的兩種訪問形式:
屬性 Object.property
方法 Object.method()
宿主對象:在Web應用中就是由瀏覽器提供的預定義對象。第3章:DOM
DOM:
文檔:D (document)
對象:O(object)
用戶定義對象
內建對象:如 Array,Math,Data等。
宿主對象:由瀏覽器提供的對象。
模型: M(model)
節點(node):
元素節點
文本節點
屬性節點
獲取元素:
getElementById
getElementsByTagName
getElementsByClassName
獲取屬性:
getAttribute
設置屬性:
setAttribute
第4章:案例研究:JavaScript圖片庫介紹了 DOM 提供的幾個新屬性:
childNodes
nodeType
nodeValue
firstChild
lastChild
第5章:最佳實戰 平穩退化平穩退化(graceful degradation):正確使用 JavaScript 腳本,可以讓訪問者在他們的瀏覽器不支持 JavaScript 的情況下仍然能順利地瀏覽你的網站。不能平穩退化會影響你的網頁在搜索引擎上的排名。
"javascript:" 偽協議:這種做法非常不好
真協議:用來在因特網上的計算機之間傳輸數據包,如HTTP協議(http://)、FTP協議(ftp://)等。
偽協議:非標準化的協議。
// 用"javascript:" 偽協議調用 popUp()函數: Example
內嵌的事件處理函數
Example
非常不好,因為#只是創建了一個空鏈接。
平穩退化辦法:將 href 屬性設置為真實存在的 URL 地址,讓它成為一個有效的鏈接。
Example
這樣,即使 javascript 被禁止,這個鏈接也是可用的。
漸進增強漸進增強就是用一些額外的信息層去包裹原始數據。按照“漸進增強”原則創建出來的網頁幾乎都符合“平穩退化”原則。
結構、樣式、行為要分離。
向后兼容
對象檢測
// 例如 if (!document.getElementById) { return false; }
瀏覽器嗅探技術
通過提取瀏覽器供應商提供的信息來解決向后兼容問題。性能考慮
盡量少訪問DOM和盡量減少標記
合并和放置腳本
推薦把 functionA.js,functionB.js,functionC.js合并到一個腳本文件中,這樣可以減少加載頁面時發送的請求數量。
把 標簽都放到文檔的末尾
標記之前。因為位于中的腳本會導致瀏覽器無法并行加載其他文件。
壓縮腳本
JSMin(http://javascript.crockford.c...)
YUI Compressor
第6章:案例研究:圖片庫改進版 共享onload事件:addLoadEvent()函數需要多個函數都在頁面加載時執行。addLoadEvent只有一個參數:打算在頁面加載完畢時執行的函數的名字。
把現有的 window.onload 事件處理函數的值存入變量 oldonload;
如果這個處理函數上還沒有綁定任何函數,就像平時那樣把新函數添加給它;
如果這個處理函數上已經綁定了一些函數,就把新函數追加到現有指令的末尾。
function addLoadEvent(func) { var oldonload = window.onload; if (typeof window.onload != "function") { window.onload = func; } else { window.onload = function (){ oldonload(); func(); } } }第7章 動態創建標記 動態添加
注意:用document.createElement創建一個空白的p元素,想在p元素內部添加內容,實際上內容也是一個文本節點,所以應該document.createTextNode創建一個文本節點,再用.appendChild添加到p節點中。
window.onload = function () { var testdiv = document.getElementById("testdiv"); var para = document.createElement("p"); // 創建 p 元素節點 var txt1 = document.createTextNode("This is"); // 創建 文本節點 var em = document.createElement("em"); // 創建 em 元素節點 var txt2 = document.createTextNode("content."); // 創建 文本節點 var txt3 = document.createTextNode("my "); // 創建 文本節點 testdiv.appendChild(para); // 將 p 元素節點添加到 div 中 para.appendChild(txt1); // 將文本節點添加到 p 元素中 para.appendChild(em); para.appendChild(txt2); em.appendChild(txt3); // 將文本節點添加到 em 元素中 }在現有元素后插入一個元素:insertAfter()函數
function insertAfter(newElement, targetElement) { var parent = targetElement.parentNode; if (parent.lastChild == targetElement) { parent.appendChild(newElement); } else { parent.insertBefore(newElement, targetElement.nextSibling); } }第8章:充實文檔的內容
把文檔里的縮略語顯示為一個“縮略語列表”
為文檔里引用的每段文獻節選生成一個“文獻來源鏈接”
把文檔所支持的快捷鍵線是位于分“快捷鍵清單”
第9章:CSS-DOM給一個元素追加新的 class:
function addClass(element,value) { if (!element.className) { element.className = value; } else { newClassName = element.className; newClassName+= " "; newClassName+= value; element.className = newClassName; } }第10章 :用JavaScript實現動畫效果
位置position
static
fixed
relative
absolute
時間
var variable = setTimeout("function",interval)
clearTimeout(variable)
parseInt把字符串里的數值信息提取出來
第11章:HTML5canvas
音頻和視頻
表單
第12章:綜合示例文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/103232.html
摘要:編程藝術第版筆記第章簡史的起源是公司和公司合作開發的。第章文檔對象用戶定義對象內建對象如等。宿主對象由瀏覽器提供的對象。偽協議非標準化的協議。結構樣式行為要分離。壓縮腳本第章案例研究圖片庫改進版共享事件函數需要多個函數都在頁面加載時執行。 《JavaScript DOM 編程藝術(第2版)》筆記 第1章:JavaScript 簡史 JavaScript 的起源 JavaScript 是...
摘要:編程藝術第版筆記第章簡史的起源是公司和公司合作開發的。第章文檔對象用戶定義對象內建對象如等。宿主對象由瀏覽器提供的對象。偽協議非標準化的協議。結構樣式行為要分離。壓縮腳本第章案例研究圖片庫改進版共享事件函數需要多個函數都在頁面加載時執行。 《JavaScript DOM 編程藝術(第2版)》筆記 第1章:JavaScript 簡史 JavaScript 的起源 JavaScript 是...
摘要:邏輯非操作符只能作用于單個邏輯操作數,其結果是把那個邏輯操作數所返回的布爾值取反。如果那個邏輯操作數所返回的布爾值是,邏輯非操作符將把它取反為為了避免產生歧義,上面這條語句把邏輯操作數放在了括號里,使邏輯非操作符作用于括號里的所有內容。 算術操作符 加減乘除這些算術操作中的每一種都必須借助于相應的操作符才能完成。操作符是JavaScript為完成各種操作而定義的一些符號。等號(=)、加...
摘要:邏輯非操作符只能作用于單個邏輯操作數,其結果是把那個邏輯操作數所返回的布爾值取反。如果那個邏輯操作數所返回的布爾值是,邏輯非操作符將把它取反為為了避免產生歧義,上面這條語句把邏輯操作數放在了括號里,使邏輯非操作符作用于括號里的所有內容。 算術操作符 加減乘除這些算術操作中的每一種都必須借助于相應的操作符才能完成。操作符是JavaScript為完成各種操作而定義的一些符號。等號(=)、加...
摘要:邏輯非操作符只能作用于單個邏輯操作數,其結果是把那個邏輯操作數所返回的布爾值取反。如果那個邏輯操作數所返回的布爾值是,邏輯非操作符將把它取反為為了避免產生歧義,上面這條語句把邏輯操作數放在了括號里,使邏輯非操作符作用于括號里的所有內容。 算術操作符 加減乘除這些算術操作中的每一種都必須借助于相應的操作符才能完成。操作符是JavaScript為完成各種操作而定義的一些符號。等號(=)、加...
閱讀 3346·2021-11-25 09:43
閱讀 3134·2021-10-11 10:58
閱讀 2735·2021-09-27 13:59
閱讀 3074·2021-09-24 09:55
閱讀 2166·2019-08-30 15:52
閱讀 1826·2019-08-30 14:03
閱讀 2256·2019-08-30 11:11
閱讀 2020·2019-08-28 18:12