js之語法大全。(原生js、事件、正則、cookie、es6)

歡迎補充~

一、基礎單詞

length:數組長度
Array:數組
number:數字
boolean:布爾
parseInt:轉化爲整型數值
continue:繼續
break:阻斷,用於循環中
Typeof: 返回值是字符串,可以檢測未定義的變量:undefind。
parseInt:取整,遇到字符NaN,隱式轉換String,返回Number。
Div.innerHTML:可讀寫屬性。
charCodeAt:獲取ASCII碼
fromCharCode:轉換爲字符。
eval:將字符串轉換爲代碼
prototype:原型鏈。
scroll-into-view:是內容出現在滾動條最下面。
cursor:pointer   鼠標變小手。
user-select:none;文本無法選中,有兼容問題。
encodeURIComponent();中文編碼爲十六進制。
decodeURIComponent():十六進制轉換爲中文
in:檢測屬性是否屬於這個對象,不管私有全局,有就是true。
hasOwnProperty:檢測這個屬性是否爲對象的私有屬性。私有才爲true

二、數組方法

// 一般都會改變原數組,堆內存。         
push :添加末尾新內容,返回長度,原數組改變變
unshift:添加新元素至開頭
pop :刪除最後一個數組元素,無參數,返回被刪除項,原數組改變
shift :刪除第一個數組元素,參數無,返回被刪除項,元素組改變
arr.length--:刪除最後一項。
reverse:顛倒數組順序
sort:對數組排序,按ASCII碼排,sort(function(a,b){return a-b})升序。
splice:splice(start,length,item) 刪,增,替換數組元素,返回被刪除數組,無刪除則不返回,支持負數,插入索引+10,被插入數,一般不會改變原數組,需要重新賦值給本身
concat :組合數組
join:數組轉化爲指定分隔符的字符串。傳什麼用什麼連接,字符串類型。不穿參,按逗號連接。
slice:左閉右開。

三、字符串方法

//一般不會改變原字符串,需要重新賦值給本身,棧內存。
new String :變爲字符串
split:方法按照給定規則分割字符串,返回一個由分割出來的子字符串組成的數組。傳的東西刪掉,形成數組。
replace:方法用於替換匹配的子字符串,一般情況下只替換第一個匹配(除非使用帶有g修飾符的正????????????
toLowerCase:方法用於將一個字符串全部轉爲小寫
toUpperCase:則是全部轉爲大寫。它們都返回一個新字符串,不改變原字符串。
trim:方法用於去除字符串兩端的空格,返回一個新字符串,不改變原字符串。
indexOf:方法用於確定一個字符串在另一個字符串中第一次出現的位置,返回結果是匹配開始的位置。如果返回-1,就表示不匹配。
        接受兩個參數,表示從該位置開始向後匹配。
substr:方法用於從原字符串取出子字符串並返回,不改變原字符串,跟slice和substring方法的作用相同。
        一個參數,複製到結束。1位負數,則倒,2爲負數則自動轉0
substring:方法用於從原字符串取出子字符串並返回,不改變原字符串,跟slice方法很相像。 如果第二個參數大於第一個參數,substring方法會自動更換兩個參數的位置。
slice:方法用於從原字符串取出子字符串並返回,不改變原字符串。它的第一個參數是子字符串的開始位置,第二個參數是子字符串的結束位置(不含該位置)。
        如果參數是負值,表示從結尾開始倒數計算的位置,即該負值加上字符串長度。
         如果第一個參數大於第二個參數,slice方法返回一個空字符串。
JSON. stringify(obj),轉換成字符串傳給後臺
JSON. parse(arr),  轉換後代數據,轉換爲對象。

四、DOM方法

document.scrollingElement:屬性返回文檔的滾動元素。也就是說,當文檔整體滾動時,到底是哪個元素在滾動。
 scrollTop=document.documentElement.scrollTop  || document.body.scrollTop
//查
document.getElementById:方法返回匹配指定id屬性的元素節點。開發基本不用
document.getElementsByTagName:方法搜索 HTML 標籤名,返回符合條件的元素集合。
document.getElementsByClassName: ie8以下不兼容。僞數組
document.querySelector:致命缺點不是實時的。(跟css獲取一樣)
跟獲取的DOM元素配合使用。節點種類太多不好用。
parentNode:父節點
childNodes:子節點們,裏面文本,註釋都算。
firstChild:第一個子節點
LastChild:最後一個子節點
nextSibliing:後一個兄弟節點
previousSibling:前一個兄弟界節點
元素的子節點,一般用這個。
parentElement:當前元素的父節點。
children:當前元素的元素子節點。
firstElementChild:第一個元素子節點。IW9以下不兼容。
lastElementSibling:後一個元素兄弟節點。
previousElementSibling:前一個元素兄弟節點。
節點的屬性。只讀不能寫。
nodeType:獲取節點屬性。.value,屬性值。元素1,屬性節點2,文本3 document9 documentFragment 11.
getComputedStyle(dom,null[style]  標準瀏覽器,IE9以下不兼容。null,獲取僞元素。
dom. currentStyle. [style]  只讀不能寫,獲取CSS屬性,IE
//DOM增刪改
document.createElement:方法用來生成元素節點,並返回該節點。
document.createTextNode():  創建文本節點
oDiv.appendChild(newDiv):把newDiv添加到oDiv內部的最後面。原元素不變,但改變結構,引發迴流。
innerHTML:把原先的實例,變成字符串和新添加的拼接,再渲染結構,原先的實例綁定方法沒了
box.replaceChild(newNode,oldNode):元素替換。
getComputedStyle():全部屬性,window下的。兼容問題currentStyle。
className:屬性用來讀寫當前元素節點的class屬性。它的值是一個字符串,每個class之間用空格分割。
setAttribute:方法用於爲當前節點設置屬性。如果屬性已經存在,將更新屬性值,否則將添加該屬性。該方法沒有返回值。
removeAttribute:方法移除指定屬性。該方法沒有返回值。
offsetHeight:屬性返回一個整數,表示元素的 CSS 垂直高度(單位像素),包括元素本身的高度、padding 和 border,只讀屬性
offsetWidth:屬性表示元素的 CSS 水平寬度(單位像素),其他都與Element.offsetHeight一致。只讀????
Element.offsetLeft:返回當前元素左上角相對於父節點的水平位移.這個兩個父級需是有定位
style.  left:有單位的距離css定義的值。
Element.offsetTop:返回垂直位移,單位爲像素。通常,這兩個值是指相對於父節點的位移

五、BOM方法

console :控制檯
window.open():打開一個新的瀏覽器窗口。
window.close():關閉瀏覽器窗口。
alert:提示框,
Window.prompt( ):可輸入的彈窗。
confirm(arg1) :顯示帶有一段消息以及確認按鈕和取消按鈕的對話框。
navigator.userAgent:檢測瀏覽器類型
location:對象包含有關當前 URL 的信息。search,href,常用
後退一頁  history.go(-1)     history.back()
        前進一頁  history.go(1)      history.forward()
window.onload = function() {console.log('頁面加載完畢')} 頁面加載完畢調用。
setTimeout(function(){console.log(2)},1000); 延時器
setInterval:定時器。前面加clear,清楚定時器。
window.onscroll:可以監聽頁面的滾動,一旦頁面滾動就會觸發onscroll 函數。

六、ES5新增

Array.isArray:typeof運算符只能顯示數組的類型是Object,而Array.isArray方法可以數組。
map:方法將數組的所有成員依次傳入參數函數,然後把每一次的執行結果組成一個新數組
forEach:方法與map方法很相似,也是對數組的所有成員依次執行參數函數。
filter:方法用於過濾數組成員,滿足條件的成員組成一個新數組返回。
some():方法是隻要一個成員的返回值是true,則整個some方法的返回值就是true,否則返回falseevery():every方法是所有成員的返回值都是true,整個every方法才返回true,否則返回false。
reduce:方法依次處理數組的每個成員,最終累計爲一個值。reduce是從左到右處理
indexOf:方法返回給定元素在數組中第一次出現的位置,如果沒有出現則返回-1。
lastIndexOf:方法返回給定元素在數組中最後一次出現的位置,如果沒有出現則返回-1

七、Math、Dath

Math.abs:返回絕對值。
Math.max.apply(Math,array):把this值指向Math對象,則第二個參數可以傳入任意數組。
Math.floor:方法小於參數值的最大整數(地板值)
Math.ceil:方法返回大於參數值的最小整數(天花板值)。
Math.round:方法用於四捨五入。
Math.pow方法返回以第一個參數爲底數、第二個參數爲冪的指數值。
Math.sqrt方法返回參數值的平方根。如果參數是一個負值,則返回NaN。
Math.sin(Math.PI / 2) // 1、參數爲弧度值。
Math.random()返回01之間的一個僞隨機數,可能等於0,但是一定小於1。
Math.round(math.random()*(max-min)+min)任意兩個數之間的隨機數
math.min() 參數是個數組,不能傳變量。可以用apply改變。
Date可以當作構造函數使用。對它使用new命令,會返回一個Date對象的實例。
let oDate = New Date()
oDate.getDate()   返回一個月中的某一天 (1 ~ 31)
oDate.getDay()    返回一週中的某一天 (0 ~ 6)
oDate.getMonth()  返回月份 (0 ~ 11)
oDate.getFullYear() 以四位數字返回年份
oDate.getHours()   返回當前小時(0-23)
oDate.getMinutes() 返回當前分鐘 (0 ~ 59)
oDate.getSeconds()      返回當前秒(0 ~ 59)
oDate.getMillisenconds()  返回當前毫秒(0 ~ 999)
oDate.getTime()       返回197011日至今的毫秒數
oDate.setDate()      設置月中的某一天 (1 ~ 31)

八、事件

//阻止事件
事件:var evt= e || event;
阻止冒泡:evt.stopPropagation()||evt.cancelBubble=true;
獲取事件源:_target= evt.target||evt. srcElement;
阻止瀏覽器默認:evt. preventDefault();跳轉,右鍵菜單,輸入框。
                return flase :數據提交事件阻止默認
                evt. returnValue=falseIE
//鼠標事件
oncontextmenu:右鍵菜單
evt.button :0是左鍵。1是滑輪。2是右鍵。
onclick:用戶單擊鼠標按鈕或按下回車鍵時觸發
ondblclick:當用戶雙擊主鼠標按鈕時觸發
onmousedown:當用戶按下鼠標還未彈起時觸發 移動端,換成touchdown
onmouseup:當用戶釋放鼠標按鈕時觸發
onmouseover:當鼠標移到某個元素上方時觸發
onmouseout:當鼠標移出某個元素上方時觸發
onmousemove:當鼠標指針在元素上移動時觸發
//HTML 事件
onload:當頁面完全加載後在 window 上面觸發,或當框架集加載完畢後在框架集上觸發。
onselect:當用戶選擇文本框(input 或 textarea)中的一個或多個字符觸發
onchange:當文本框(input 或 textarea)內容改變且失去焦點後觸發
onfocus:當頁面或者元素獲得焦點時在 window 及相關元素上面觸發
onblur:當頁面或元素失去焦點時在 window 及相關元素上觸發
onresize:當窗口或框架的大小變化時在 window 或框架上觸發
onscroll:當用戶滾動帶滾動條的元素時觸發
//事件對象屬性
event.butto:當前事件觸發時哪個鼠標按鍵被點擊
clientX、clientY:鼠標在可視區X座標和Y座標,即距離左邊框和上邊框距離
screenX、screenY:鼠標在屏幕區X座標和Y座標,即距離左屏幕和上屏幕的距離
offsetX、offsetY:鼠標相對於事件源的X座標和Y座標,受父元素影響
pageX、pageY:鼠標相對於文檔的X座標和Y座標,不會受事件源影響,用來減事件源移量求鼠標位置。
scrollyto():x,y。滾動條到達某個位置。
scrollyby():累加滾動。
//鍵盤事件
keyCode:獲取鍵盤碼,兼容var code=evt.keyCode||evt.which
onkeydown:當用戶按下鍵盤上任意鍵觸發,如果按住不放,會重複觸發
onkeypress:當用戶按下鍵盤上的字符鍵觸發,按住不放,會重複觸發,能返回ASSII碼
onkeyup:當用戶釋放鍵盤上的鍵觸發
oninput:實時監聽內容變化
altKey屬性,bool類型,表示發生事件的時候alt鍵是否被按下
ctrlKey屬性,bool類型,表示發生事件的時候ctrl鍵是否被按下
shiftKey屬性,bool類型,表示發生事件的時候shift鍵是否被按下 
//事件監聽
div.addEventListener(‘click’ , 函數體,flase);這個方法可以綁定多個事件。函數只能一個
element.addEventListener(“click”,function(){},false);//false 事件冒泡
element.addEventListener(“click”,function(){},true);//true事件捕獲
evt.target:用來捕獲事件源。把子元素的事件,放到父元素處理,用於事件委託,留言板的,新加的內容,自動賦予事件。
removeEventListener(事件名,處理函數):移除事件監聽器
div.attzchEvent(‘onclick’,function(){ });IE專用,可以多個函數。

九、正則表達式

i 執行對大小寫不敏感的匹配
g 執行全局匹配(查找所有匹配而非在找到第一個匹配後停止)。
m 執行多行匹配
test: 正則實例對象的test方法返回一個布爾值,表示當前模式是否能匹配參數字符串
exec:用於檢索字符串中的正則表達式的匹配。返回一個數組,其中存放匹配的結果。如果未找到匹配,則返回值爲null。
replace: 按照給定的正則表達式進行替換,返回替換後的字符串。
字符串對象的replace方法可以替換匹配的值。它接受兩個參數,第一個是正則表達式,表示搜索模式,第二個是替換的內容。
search:檢索與正則表達式相匹配的值。返回字符串中第一個與正則表達式相匹配的子串的起始位置。如果沒有找到則返回-1//字符類匹配
[] 查找方括號之間的任何字符
[^] 查找任何不在方括號之間的字符
[a-z] 查找任何從小寫 a 到小寫 z 的字符
[A-Z] 查找任何從大寫 A 到大寫 Z 的字符
[A-z] 查找任何從大寫 A 到小寫 z 的字符
. 查找單個字符,除了換行和行結束符
\w 查找單詞字符,等價於[a-zA-Z0-9]
\W 查找非單詞字符,等價於[^a-zA-Z0-9]
\s 查找空白字符
\S 查找非空白字符
\d 查找數字,等價於[0-9]
\D 查找非數字字符,等價於[^0-9]
\b 匹配單詞邊界
\r 查找回車符
\t 查找製表符
\0 查找 NULL 字符
\n 查找換行符
//重複字符匹配
{n,m} 匹配前一項至少n次,但不能超過m次
{n,} 匹配前一項n次或更多次
{n} 匹配前一項n次
n? 匹配前一項0次或者1次,也就是說前一項是可選的,等價於{01}
n+ 匹配前一項1次或多次,等價於{1}
n* 匹配前一項0次或多次,等價於{0}
n$ 匹配任何結尾爲 n 的字符串
^n 匹配任何開頭爲 n 的字符串
?=n 匹配任何其後緊接指定字符串 n 的字符串
?!n 匹配任何其後沒有緊接指定字符串 n 的字符串
//匹配特定數字
^[1-9]\d*$    匹配正整數
^-[1-9]\d*$   匹配負整數
^-?[0-9]\d*$   匹配整數
^[1-9]\d*|0$  匹配非負整數(正整數 + 0^-[1-9]\d*|0$   匹配非正整數(負整數 + 0^[1-9]\d*.\d*|0.\d*[1-9]\d*$  匹配正浮點數
^-([1-9]\d*.\d*|0.\d*[1-9]\d*)$ 匹配負浮點數
^-?([1-9]\d*.\d*|0.\d*[1-9]\d*|0?.0+|0)$  匹配浮點數
^[1-9]\d*.\d*|0.\d*[1-9]\d*|0?.0+|0$   匹配非負浮點數(正浮點數 + 0^(-([1-9]\d*.\d*|0.\d*[1-9]\d*))|0?.0+|0$  匹配非正浮點數(負浮點數 + 0//匹配特定字符串
^[A-Za-z]+$  匹配由26個英文字母組成的字符串
^[A-Z]+$  匹配由26個英文字母的大寫組成的字符串
^[a-z]+$  匹配由26個英文字母的小寫組成的字符串
^[A-Za-z0-9]+$  匹配由數字和26個英文字母組成的字符串
^\w+$  匹配由數字、26個英文字母或者下劃線組成的字符串

十、cookie

document.cookie = “key=value”; // 一次寫入一個鍵值對,讀取,修改
expires:修改時間 例:document.cookie = “key=value;expires=+ oDate;
domain:設置域名 例:document.cookie = “key=value;domain=www.baidu.com“;
path:設置路徑 例:document.cookie = “key=value;path=/;

十一、ES6

let:命令,用來聲明變量。它的用法類似於var,但是所聲明的變量,只在let命令所在內有效。
const:聲明的變量不得改變值,這意味着,const一旦聲明變量,就必須立即初始化,不能留到以後賦值
repeat:方法返回一個新字符串,表示將原字符串重複n次
includes():返回布爾值,表示是否找到了參數字符串。
startsWith():返回布爾值,表示參數字符串是否在原字符串的頭部。
endsWith():返回布爾值,表示參數字符串是否在原字符串的尾部。
` `           模板字符串,可以裏面變量放${}
Array.from :可將類數組轉化爲真正數組,比如arguments
...            將數組轉化爲參數,還有合併數組,放前面
Set 操作方法(用於操作數據)和遍歷方法(用於遍歷成員)。下面四個操作方法
set = new Set([1, 4, 9]);
- add(value):添加某個值,返回 Set 結構本身。
- delete(value):刪除某個值,返回一個布爾值,表示刪除是否成功。
- has(value):返回一個布爾值,表示該值是否爲Set的成員。
- clear():清除所有成員,沒有返回值。
Map 結構提供了“值—值”的對應,是一種更完善的 Hash 結構實現
const map = new Map();
size屬性返回 Map 結構的成員總數。
set方法設置鍵名key對應的鍵值爲value,然後返回整個 Map 結構
get方法讀取key對應的鍵值,如果找不到key,返回undefined。
has方法返回一個布爾值,表示某個鍵是否在當前 Map 對象之中。
delete方法刪除某個鍵,返回true。如果刪除失敗,返回false
clear方法清除所有成員,沒有返回值。
eys():返回鍵名的遍歷器。
values():返回鍵值的遍歷器。
entries():返回所有成員的遍歷器。
forEach():遍歷 Map 的所有成員。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章