因爲筆記比較雜,自己學習程度並不理想,因此暫時沒有整理這些繁雜的筆記。
ps:博客園markdown用起來和看起來都舒服太多了,這纔是我瞭解的那個markdown,又回來了!javascript
注:在JS中全部的節點都是對象
<div title="屬性節點">文本內容</div>
css
<div></div> => 元素節點 title => 屬性節點 文本內容 => 文本節點
document.getElementById(id);
//經過當前元素節點的id,獲取對應元素節點document.getElementsByTagName() node.getElementsByTagName();
從node節點開始,找出符合的標籤節點
參數:標籤名;
功能:獲取當前頁面上全部符合改標籤的元素節點
返回值:一個裝有符合條件的元素節點的數組html
document.getElementsByName(); 只能從document調用 ps:許多的name能夠同樣
參數:name的值
返回值:裝有符合條件的元素節點的數組java
document.getElementsByClassName() ps:能夠從某一個元素節點去查找
參數:class
返回值:全部符合條件的元素節點組合的數組。
在第版本的ie瀏覽器中是不支持的 處理辦法
獲取父節點的全部元素,而後進行一一判斷,符合className等於參數class就能夠加入數組中。node
經過封裝函數,簡化上述操做。es6
詳情看$()方法 //經過封裝css選擇器的方法,來快速的獲取對應的標籤web
做用:操做當前元素的某一個屬性的
get/setAttribute() 獲取元素屬性的兩種方法
removeAttribute()正則表達式
Obtn.className == Obtn.getAttribute("class")
Obtn.setAttribute("xxx","yyy")
document.getElementsById("btn").getAttribute("id")
childNotes(); 獲取當前節點的全部子節點,包括三種節點類型 nodeName,nodeType,nodeValue數組
DOM節點類型
元素節點 屬性節點 文本節點
做用:
(1)刪除子節點中的空白節點
方法:使用正則表達式進行刪除。/^\s+$/.test() 判斷是否value爲空
刪除空白節點的時候必須是倒序刪除,緣由本身想,想不到撞死,提示:他是一個數組類型瀏覽器
(2)不知道
ownerDocument 結果通常是document
parentNode 父親節點 previousSibling 同級別的上一個節點 nextSibling 同級別的下一個元素節點
attributes 返回該節點的屬性節點,[集合]
集合特色:1.不重複;2.無序
其中一種訪問方法:node.attributes.getNamedItem("id");
var note = document.createElement("span") var Ntext = document.createTextNode("文本內容") 插入文本內容 note.appendChild(Ntext) odiv.appendChild(note)
訪問web界面的用戶引發的一系列操做
鼠標事件,鍵盤事件,HTML事件
函數:on+事件名稱
事件:捕獲,目標,冒泡
阻止冒泡:
evt.cancelBubble = true //對主流瀏覽器和ie生效 evt.stopPropagation() //只對主流瀏覽器生效
事件委託:利用事件冒泡原理,把本應添加在元素上的事件委託給他的父級(外層)
多個重複的事件,能夠把這個事件委託到父級來實現。更加簡潔
阻止默認事件
好比<a></a>
href跳轉標籤
DOM2級事件處理程序
添加事件監聽器:addEventListener(事件名,處理函數,布爾值)
移除事件監聽器:removeEventListener(事件名,處理函數)
IE下的事件監聽器:attachEvent(事件名,處理函數) detachEvent(事件名,處理函數)
ps:普通事件中點擊事件會被後一個點擊事件給覆蓋,而二級事件不會被其餘事件所覆蓋。能夠重複添加
布爾值爲false的時候,爲正常的冒泡事件,true爲捕獲(從外往內)
http:超文本傳輸協議,用於從web服務器傳輸超文本到本地瀏覽器的傳輸協議,是一個無狀態的協議
cookie:緩存存在本地瀏覽器中的數據,包括增刪改查的四個部分
document.cookie = "userName=paikle"; //這種方式添加的cookie會隨着瀏覽器的關閉而消失,要設置時間限制的cookie須要在後面添加date限制
設置時間來讓cookie過時,從而達到刪除的效果。
var oDate = new Date(); //建立時間 oDate.setDate(oDate.getDate()+3) //將時間設置爲三天以後 document.cookie = "user = paikle;expires="+oDate; //將cookie過時時間設置爲三天後
setcookie(name,value,day) //設置cookie
getcookie() //獲取cookie
removecookie() //移除cookie
正則表達式是由普通字符和特殊字符組成的對字符串進行過濾的邏輯公式
g 表示會所有搜索,返回符合的數字,i 表示忽略大小寫
var reg = /abc/g; var str = 'abcabc';
正則表達式方法,檢測字符串是否又符合規則的字串,有返回true,無爲false
//兩種構造方法 var rge = /abc/; var reg = new RegExp("abc"); var str = "ab"; var flag = reg.test(str)
console.log(str.match(reg))
var rg = /bc/
console.log(str.search(rg))
var tmd = /tmd/gi
var str = "abc tmd tmd TMd sabi";
console.log(str.replace(tmd,"*"));
和match差很少的用法,不過在配置全局匹配的時候不能一次出來
符號 | 效果 |
---|---|
. | 除了換行符以外的全部單個字符 |
var rag = /g..gle/gi;var str = 'googlegole';console.log(rag.test(str)) | |
* | 重複屢次匹配,匹配任意次數 無論中間多少次(0-n) |
+ | 至少有一次重複匹配 |
? | 進行0或者1次匹配 |
[] | 一個字母表示可出現的範圍,[0-9] [a-z] |
\w | 數組字母下劃線等同於[0-9a-zA-Z_] |
\W | 非數字字母下劃線 |
\d | 數字0-9 |
\D | 非數字 |
\s | 匹配空格 \S 非空格 |
{m,n} | 至少匹配m次,至多匹配n次 |
/^開頭.*結尾&/ | |
| | 或 /a |
() | 分組 將內容做爲一個總體去匹配 |
用來聲明變量。用法相似於var ,可是所聲明的變量,只在let命令所在的代碼塊有效。
存在塊級做用域 {}
不存在聲明提高
不容許重複聲明(包括普通變量和函數參數)
const使用 用來聲明常量,不要試圖改變常量的值,其餘語法參照let
//默認賦值 let [a,b,c] = [1,2,3] [a,b=2] = [3] // a = 3,b = 2 let c ; //undifined; [a=1] = [c] //a = 1 //對象 let {a,b} = {a:'100',b:'200'} // a = 100 , b = 200 let {a:b} = {a:111} // b = 111; let {a,b = 4} = {a:1} //a = 1;b = 4
var name = "做用域1" var obj = { 'name':'jonson', 'syHello':()=>{ this.name;//this指向定義的做用域,則返回:做用域1 } } //ps var obj = { 'name':"joson", "syHello":function(){ this.name;//joson } }
set的值是不能重複的,至關於集合
var set = new Set([1,3,2,2,34,1,3])
var arr = [...set]
擴展運算符,將類數組對象轉換以逗號分割的序列,set轉換爲數組的方式
arr 爲數組形式
使用for of 遍歷set or 數組
for(let et of set){ //et直接表明元素 console.log(et) }
set.size 長度 set.add() 添加一個 set.delete() 刪除某一個 set.has() 是否包含某一個 set.clear() 清空
keys() 返回鍵名
values() 返回鍵值
entries() 返回鍵值對
forEach()
let map = new Map([['name':'john'],['age':'30']])
map.set(key,value) 添加元素
map.set(key,value) map.get(key) map.delete() map.has(key) map.clear();
keys() 返回鍵名
values() 返回鍵值
entries() 返回鍵值對
forEach() map.forEarch((value,key) => console.log(value*2))
class Person{ constructor(name){ this.name = name; } }