摘要:設(shè)定瀏覽器屬性的屬性的方法叫做駝峰式命名是函數(shù)名方法名和對(duì)象屬性名的命名首選格式。由瀏覽器預(yù)先定義的對(duì)象被稱為宿主對(duì)象。在給某個(gè)元素添加了事件處理函數(shù)后,一旦事件發(fā)生,相應(yīng)的代碼就會(huì)執(zhí)行。
1.JavaScript是一個(gè)使網(wǎng)頁(yè)具有交互能力的程序設(shè)計(jì)語(yǔ)言。
2.設(shè)定瀏覽器屬性的屬性的方法叫做BOM.
3.駝峰式命名(myMood)是函數(shù)名、方法名和對(duì)象屬性名的命名首選格式。
4.命名變量的時(shí)候可以用下劃線來分隔每個(gè)單詞,命名函數(shù)的時(shí)候使用駝峰式命名。
5.函數(shù)在行為方面應(yīng)該像一個(gè)自給自足的腳本,在定義一個(gè)函數(shù)時(shí),我們一定要把他內(nèi)部的變量全都明確地聲明為局部變量。
6.由瀏覽器預(yù)先定義的對(duì)象被稱為宿主對(duì)象。宿主對(duì)象包括From、Image,document等。
7.DOM(document object model)。
8.在DOM中有元素節(jié)點(diǎn)(標(biāo)簽)(文檔中每一個(gè)元素都是一個(gè)對(duì)象)、文本節(jié)點(diǎn)(內(nèi)容)、屬性節(jié)點(diǎn)(屬性)。
9.即使在整個(gè)文檔中這個(gè)標(biāo)簽只有一個(gè)元素,getElementsByTagName也返回一個(gè)數(shù)組,此時(shí)數(shù)組的長(zhǎng)度是1.。
10.getElementsByClassName返回的是一個(gè)具有相同類名的元素的數(shù)組。
11.使用getElemntsByClassName指定多個(gè)類名的時(shí)候,只需要在參數(shù)的時(shí)候?qū)⒍鄠€(gè)類名以空格隔開
。
12.getElementsById返回的是一個(gè)對(duì)象,對(duì)象對(duì)應(yīng)著文檔里的一個(gè)特殊的元素節(jié)點(diǎn)
。
13.getAttribute和setAttribute兩個(gè)函數(shù)都只能用于元素節(jié)點(diǎn)。
14.DOM的工作模式:先加載文檔的靜態(tài)內(nèi)容,再動(dòng)態(tài)刷新,動(dòng)態(tài)刷新不影響文檔的靜態(tài)內(nèi)容,對(duì)頁(yè)面內(nèi)容進(jìn)行刷新卻不需要在瀏覽器里刷新頁(yè)面。
15.在給某個(gè)元素添加了事件處理函數(shù)后,一旦事件發(fā)生,相應(yīng)的JavaScript代碼就會(huì)執(zhí)行。被調(diào)用的JavaScript代碼可以返回一個(gè)值,這個(gè)值就會(huì)被傳遞給事件處理函數(shù)。假設(shè)在a標(biāo)簽onclick里面指定事件處理函數(shù),當(dāng)這個(gè)函數(shù)返回一個(gè)true的時(shí)候,onclick事件就會(huì)認(rèn)為a標(biāo)簽中的鏈接被點(diǎn)擊了,如果返回的是false就會(huì)被認(rèn)為這個(gè)鏈接2沒有被點(diǎn)擊。所以,如果想要不觸發(fā)a標(biāo)簽中的默認(rèn)行為,在onclick里面添加一句return false。
16.childNodes屬性可以用來獲取任何一個(gè)元素的所有子元素,它是一個(gè)包含這個(gè)元素全部子元素的數(shù)組。
17.要想知道一個(gè)節(jié)點(diǎn)的類型,可以使用nodeType來查看節(jié)點(diǎn)的類型
nodeType=1 節(jié)點(diǎn)為元素節(jié)點(diǎn)
=2 屬性節(jié)點(diǎn) =3 文本節(jié)點(diǎn)
18.window.open()打開一個(gè)新的瀏覽器窗口。
function popUrl(winURL) { window.open(winURL,"popup","width:320px,height:400px"); } popUrl("canvas.html");
19.平穩(wěn)退化(當(dāng)瀏覽器不支持js代碼的時(shí)候不影響網(wǎng)頁(yè)的正常功能。)
20.性能考慮
(1)盡量少訪問DOM:不管什么時(shí)候,只要是查詢DOM中的某些元素,瀏覽器都會(huì)搜索整個(gè)DOM樹,從中查找可能匹配的元素。換句話就是或每次使用getElementBy*的時(shí)候都會(huì)遍歷整個(gè)DOM樹,所以最好是使用一次來獲得元素并將元素存儲(chǔ)在一個(gè)變量當(dāng)中。
(2)盡量少使用標(biāo)記:過多不必要的元素只會(huì)增加DOM樹的規(guī)模,進(jìn)而增加遍歷DOM樹以查找特定元素的時(shí)間。
(3)包含腳本的最佳方式就是使用外部文件,并將多個(gè)js文件合并在一起。就可以減少加載頁(yè)面時(shí)發(fā)送的請(qǐng)求數(shù)量。
(4)把所有Script標(biāo)簽都放在文檔的末尾,body標(biāo)簽結(jié)束之前,就可以讓頁(yè)面變得更快。
(5)壓縮腳本:把腳本文本中不必要的字節(jié),如空格和注釋統(tǒng)統(tǒng)刪除,從而達(dá)到壓縮文件的目的。
21.HTTP協(xié)議規(guī)范,瀏覽器每次從同一個(gè)余名中最多能同時(shí)下載兩個(gè)文件。
22.如果想用JavaScript給某個(gè)網(wǎng)頁(yè)添加一些行為,就不應(yīng)該讓JavaScript代碼對(duì)這個(gè)網(wǎng)頁(yè)的結(jié)構(gòu)有任何依賴。
23.如果一個(gè)函數(shù)有多個(gè)出口,將這些出口集中安排在函數(shù)的開頭部分。
24.循環(huán)判斷一組a標(biāo)簽被點(diǎn)擊后所做的js處理
function prepareGallery() { if (!document.getElementById) return false; if (!document.getElementsByTagName) return false; if (!document.getElementById("imagegallery")) return false; var gallery = document.getElementById("imagegallery"); var links = gallery.getElementsByTagName("a"); for (var i = 0; i < links.length; i++){ links[i].onclick = function () { showpic(this); return false; } } }
25.addLoadEvent():自己編寫腳本函數(shù),用來添加頁(yè)面加載的時(shí)候需要處理的函數(shù)
function addLoadEvent(func) { var onload = window.onload; if (typeof window.onload !=func){ window.onload = func; }else { window.onload = function (ev) { oldload(); func(); } } }
26.createTextNode用來創(chuàng)建文本節(jié)點(diǎn)
var txt = document.createTextNode("hello world");
27.js想要在文檔里面插入內(nèi)容的時(shí)候,要從dom的角度出發(fā)。例如在div里面插入一個(gè)p段落:
var p = document.createElement("p"); var txt = document.creatTextNode("hello world"); var div = document.getElementById("mydiv"); div.appendChild(p); p.appendChild(txt);
28.insertBefore(),:在元素的前面插入元素,
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/96287.html
摘要:也就是說,仍將看到一條消息。這些語(yǔ)句執(zhí)行完畢后,變量的值將是,盡管循環(huán)控制條件的求值結(jié)果是。循環(huán)最常見的用途之一是對(duì)某個(gè)數(shù)組里的全體元素進(jìn)行遍歷處理。變量對(duì)于數(shù)組中每個(gè)元素都是從開始按遞增。 循環(huán)語(yǔ)句 if語(yǔ)句唯一的不足是無法完成重復(fù)性的操作。在if語(yǔ)句里,包含在花括號(hào)里的代碼塊只能執(zhí)行一次。如果需要多次執(zhí)行同一個(gè)代碼塊,就必須使用循環(huán)語(yǔ)句。 while循環(huán) while循環(huán)與if語(yǔ)句非...
摘要:事實(shí)上,每個(gè)函數(shù)實(shí)際是一個(gè)短小的腳本。先對(duì)函數(shù)做出定義再調(diào)用是一個(gè)良好的編程習(xí)慣??梢詫⒉煌臄?shù)據(jù)傳遞給它們,而它們將使用這些數(shù)據(jù)去完成預(yù)定的操作。傳遞給函數(shù)的數(shù)據(jù)稱為參數(shù)。這個(gè)例子中,變量的值將是,這個(gè)數(shù)值由函數(shù)返回。 函數(shù) 如果需要多次使用同一段代碼,可以把它們封裝成一個(gè)函數(shù)。函數(shù)就是一組允許在你的代碼里隨時(shí)調(diào)用的語(yǔ)句。事實(shí)上,每個(gè)函數(shù)實(shí)際是一個(gè)短小的腳本。 先對(duì)函數(shù)做出定義再調(diào)用...
摘要:邏輯非操作符只能作用于單個(gè)邏輯操作數(shù),其結(jié)果是把那個(gè)邏輯操作數(shù)所返回的布爾值取反。如果那個(gè)邏輯操作數(shù)所返回的布爾值是,邏輯非操作符將把它取反為為了避免產(chǎn)生歧義,上面這條語(yǔ)句把邏輯操作數(shù)放在了括號(hào)里,使邏輯非操作符作用于括號(hào)里的所有內(nèi)容。 算術(shù)操作符 加減乘除這些算術(shù)操作中的每一種都必須借助于相應(yīng)的操作符才能完成。操作符是JavaScript為完成各種操作而定義的一些符號(hào)。等號(hào)(=)、加...
摘要:邏輯非操作符只能作用于單個(gè)邏輯操作數(shù),其結(jié)果是把那個(gè)邏輯操作數(shù)所返回的布爾值取反。如果那個(gè)邏輯操作數(shù)所返回的布爾值是,邏輯非操作符將把它取反為為了避免產(chǎn)生歧義,上面這條語(yǔ)句把邏輯操作數(shù)放在了括號(hào)里,使邏輯非操作符作用于括號(hào)里的所有內(nèi)容。 算術(shù)操作符 加減乘除這些算術(shù)操作中的每一種都必須借助于相應(yīng)的操作符才能完成。操作符是JavaScript為完成各種操作而定義的一些符號(hào)。等號(hào)(=)、加...
摘要:邏輯非操作符只能作用于單個(gè)邏輯操作數(shù),其結(jié)果是把那個(gè)邏輯操作數(shù)所返回的布爾值取反。如果那個(gè)邏輯操作數(shù)所返回的布爾值是,邏輯非操作符將把它取反為為了避免產(chǎn)生歧義,上面這條語(yǔ)句把邏輯操作數(shù)放在了括號(hào)里,使邏輯非操作符作用于括號(hào)里的所有內(nèi)容。 算術(shù)操作符 加減乘除這些算術(shù)操作中的每一種都必須借助于相應(yīng)的操作符才能完成。操作符是JavaScript為完成各種操作而定義的一些符號(hào)。等號(hào)(=)、加...
閱讀 1153·2021-10-27 14:13
閱讀 2652·2021-10-09 09:54
閱讀 933·2021-09-30 09:46
閱讀 2442·2021-07-30 15:30
閱讀 2183·2019-08-30 15:55
閱讀 3424·2019-08-30 15:54
閱讀 2867·2019-08-29 14:14
閱讀 2787·2019-08-29 13:12