js和java同樣也有封裝、繼承、多態的特性,關於這些特性咱們後邊再敘述。這裏先說一下關於js一些零散的知識點:css
for (var 變量 in 對象) {
}複製代碼
js方法調用不檢查參數類型,不檢查參數數量 ,返回值能夠是函數java
屬性提高寫法: var a = 1; 不提高寫法 a= 1;方法提高寫法:function a(){} ;方法不提高 寫法:var a = function(){}
node
this是誰?this關鍵字永遠指向函數(方法)運行時的全部者。json
fun();
至關於window.fun();
節點分爲:標籤節點、屬性節點、文本節點。他們對應的nodeType 分別是一、二、3。瀏覽器
獲取標籤節點 :bash
document.getElementById("box1")複製代碼
獲取父節點:節點.parentNode。還能夠獲取任意節點。複製代碼
建立標籤節點:app
document.createElement("標籤名");複製代碼
插入標籤節點:函數
父節點.appendChild(新的子節點);
複製代碼
父節點.insertBefore(新的子節點,做爲參考的子節點)複製代碼
刪除標籤節點:ui
父節點.removeChild(子節點);複製代碼
複製標籤節點:this
要複製的節點.cloneNode();
要複製的節點.cloneNode(true);複製代碼
不帶參數/帶參數false:只複製節點自己,不復制子節點。
帶參數true:既複製節點自己,也複製其全部的子節點。
獲取屬性節點:
標籤節點.getAttributeNode("屬性名")複製代碼
獲取節點屬性值:
元素節點.屬性名;
元素節點["屬性名"];複製代碼
元素節點.getAttribute("屬性名稱");複製代碼
修改、添加節點屬性值:
元素節點.屬性名=新值;
元素節點["屬性名"] = 新值;複製代碼
元素節點.setAttribute(屬性名, 新的屬性值);複製代碼
刪除節點屬性:
元素節點.removeAttribute(屬性名);複製代碼
獲取文本:
innerHTML:雙閉合標籤裏面的內容(識別標籤)。
innerText:雙閉合標籤裏面的內容(不識別標籤)。
document.getElementById("box11").innerHTML
document.getElementById("box21").innerText複製代碼
修改文本:
document.getElementById("box11").innerHTML = 新內容(識別標籤)
document.getElementById("box21").innerText = 新內容(不識別標籤)複製代碼
ele.style.width或者 ele.style["width"];缺點是隻能獲取或者賦值行內樣式,若是像樣獲取class中寫的樣式怎麼獲取呢?
function getStyle(ele, attr) {
if (window.getComputedStyle) {
return window.getComputedStyle(ele, null)[attr];
}
return ele.currentStyle[attr];
}複製代碼
這個方法無論行內仍是class中的css樣式屬性值均可以獲取的到。
js事件傳遞分爲捕獲階段、目標階段、冒泡階段。
捕獲階段就是:從外向內傳遞的過程。
冒泡階段就是:內向外傳遞的過程。
目標階段:事件在點擊目標標籤的時間段。
而且他們若是同時設置調用順序是:先調用父標籤捕獲,再調用子標籤捕獲,先調用子標籤冒泡,後調用父標籤冒泡,特殊狀況是在目標階段:冒泡和捕獲,誰的代碼在前邊誰先執行。
Event是一個事件函數內置對象,他包含了點擊事件的全部信息,而且能夠調用Event.stopPropagation()對事件進行攔截。
window對象是BOM的頂層(核心)對象,BOM中有一些開發者須要知道的屬性和方法以下:
方法:
window.alert(); //不一樣瀏覽器中的外觀是不同的彈窗複製代碼
window.open(url,target,param)//打開一個新窗口複製代碼
window.close()//關閉本身的窗口複製代碼
對象:
location對象:location.reload()從新加載
navigator對象:userAgent屬性:系統,瀏覽器
history對象:
後退:
history.back()
history.go(-1):0是刷新
前進:
history.forward()
history.go(1)