正則表達式與ES5/ES6的基礎內容

常用的一些正則表達式


?????????單字符

????????????????????^:表示正則的開頭規則要求(^e)

????????????????????$:表示正則的結尾的規則要求(e$)

????????????????????+:至少出現一個前面一樣的字符(+一個字符)

????????????????????*:至少匹配0個或者多個字符(*A)

?????????????????????:只能出現0-1次(?e)

????????????????????.:匹配任何一種字符(.e)

????????????????????\:轉義,把在正則中有特殊含義的字符轉義(\.)


????????組合字符:

????????????????????\d:匹配任意一個數字0-9(\d)

????????????????????\D:匹配任意一個非數(\D)

????????????????????\w:匹配數字,字母,下劃線(\w)

????????????????????\W:匹配除了下劃線意外的特殊字符(\W)

????????????????????\s:表示空的字符(匹配空格字符);


正則修飾符:

????i:忽略大小寫。var reg=/ /i;

????g:全局匹配

構造函數方式創建正則:

var reg=new RegExp("正則表達式",“修飾符”);

????var reg=new RegExp("wW","i");

正則的一些方法:

1reg.test();檢驗一個字符串是否符合某一個正則規范,如果符合返回true,否則返回false

??????????用法:reg.test(str);

2reg.exec();根據正則表達式查找,結果返回一個長度為1的數組 (數組只有一個值)

??????????用法:reg.exec(str);

3str.search( ) ;根據正則匹配查詢,如果在字符里面有匹配的字符,返回所在的下標,如果沒有返回-1。

????????用法:str.search(reg);

4str.match( );根據正則匹配查詢,把正則所匹配的所有字符,以數組的形式返回

????????用法:str.match(reg)

5str.replace( );根據正則匹配,替換正則所匹配的字符

????????用法:str.replace(正則表達式要替換的新字符串) 如果想實現全局替換,在正則表達式上加一個修飾符

? ? ? ? str.replace(reg,"替換的內容")

1.嚴格模式:

? ? “ use strict”

????????嚴格模式常見的要求:

???????????定義變量必須要有var

???????????嚴格模式下,八進制被禁用

???????????嚴格模式下,函數必需聲明在程序的最頂端

??????????arguments與形參不同

??????????eval()解析在嚴格模式下有自己的作用域,不被外部訪問

2.let關鍵字??

let 聲明變量

let 不允許重復聲明變量

let 必須在某個{}內部使用

let 在函數體內部 聲明的變量沒有變量提升; 暫時性死區:通過let聲明的變量 變量聲明之前該變量不可用,這種現象就稱作暫時性死區

let????塊級作用域案例:點擊某個li,獲取li在頁面的下標


? ? 3.this指向的改變

???????????(1) this 的指向:

????????????????this指向直接綁定它的對象。(調用它的對象)

????????????????函數

???????????????例子:?????btn.onclick=function(){

????????????????console.log(this);

}

????????????函數的創建就會產生一個this

????????(2)改變this的指向

????????????????????bind(this):可以改變匿名函數內部的this指向;

????????????????????call(this):函數調用時可以改變this指向;

????????????????????apply(this):函數調用時可以改變this指向;

????????箭頭函數沒有this,箭頭函數中的this繼承父級而來。(本身是沒有this的,它的this要看它的執行環境)

????????箭頭函數無法通過bind( ),call( ),apply( )改變this的指向

4.for of:

????????for(var item of arr){

????????//item 遍歷得到的item是數組的每一個元素

}

????????for...of 與for...in的區別

????????????a. for in遍歷數組的得到的是數組的下標,并且下標是字符串

????????????????for in???主要用于遍歷對象

????????????b. for??of??不能遍歷對象

????????????????for of?????遍歷數組得到的是數組的第一個元素

????????????c.for of 可以用來遍歷map集合

??????????????for in不能遍歷map集合

5.const關鍵字(定義常量的關鍵字)


???常量:不會變化的量;(以固定值的形式存在)

????常量定義后不能在使用的過程中發生改變,如果改變,程序報錯

????const PI = 3.14159;

????PI = 3.14;//報錯

????常量名一般用大寫表示,與變量區別開來????????


6.字符串模板

`dfadsfasdf${}adsf `;${}里面 可以解析變量,也可以解析函數

7.箭頭函數

關鍵字函數???function box(){};

??箭頭函數????var box =()=>{};

(所有的匿名函數都都可以寫成箭頭函數,所有的綁定事件后面的匿名函數都可以寫成箭頭喊數,所有的方法的回調函數都可以寫成匿名函數,那也就可以寫成箭頭函數,總結凡是匿名函數都可以寫成箭頭函數)

箭頭函數與匿名函數的區別?

8.箭頭函數中的this(很重要)

????????箭頭函數沒有this,箭頭函數中的this繼承父級而來。(本身是沒有this的,它的this要看它的執行環境)

????????箭頭函數無法通過bind( ),call( ),apply( )改變this的指向

9.解構賦值

?????解構賦值數組的用法:

????????var [a,b,b]=[1,2,3,4,5,67]

????????console.log(a,b,c)==1,2,3;

????解構賦值在對象中的用法:

????var {a,b}={a:23,b:54};

????????console.log(a,b)=23,54;

????var {name,age}={name:"jom",age=23};

????????????consolo.log(name,age)==jom 23;

????結構賦值的交換

????????????var [num1,num2]=[num2,num1];

????作用:

????????????1,一次性可以多個變量

????????????2,可以快速的獲取對象中對應屬性的值,并且無視屬性屬性;

????????????3,可以輕松實現兩個數的交換

????????????4,在函數中的使用,可以一次性返回多個結果

????????????5,可以作用在函數的傳參上,以對象的方式傳遞,可以無視參數的順序,形參與實參的健名要保持一致

10.Array.from();

?? ??? ?? ? var arr=[ ];

?? ??? ?? ? 偽數組:argunments,通過document.getElementsByTagName("li")

?? ??? ?? ? 把偽數組轉換成真正的數組

?? ??? ?? ? 把屬性含有length

11.set集合

var set=new Set([數據] );以數組的方式保存數據(主要用來保存數據。不限制類型,會自動去重,不會自動換數據類型);一般不保存對象

????set集合保存數據的方法:

????????var set =new??Set();

? ? ? ? //添加值到集合中

????????set.add(3,12).add(53),add(name:"tom");

????????console.log(set);


????set.szie( );查看集合數據的個數

????set.has("");查找一個值在集合里面是否存在,如果不存在返回false,存在返回true;

????set.delete(??);刪除集合里的一個指定的值

????set.clear(??);清空所有的set值

//遍歷一個set集合

? ? set。forEach (function(item,index)){

?? ?? ? console.log( item,index)

}

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 我摟著妮妹,望著她。妮妹俯看著我,「我咋就跟你這麼熟呢?」我笑「早就說過,我倆是孽緣。十世都還不清,下輩子還得在一...
    Pope怯懦懦地閱讀 206評論 0 1
  • 明明跟寶寶說好了再睡一會的,可還是忍不住想過來寫點東西。 寶寶說,我去收拾東西。 我說,去吧。 結果她給我發過來一...
    深藍不會寫小說閱讀 367評論 0 1
  • 8月讀書也不算多,今年似乎比往年要懈怠。不過我也不強求,讀書本是興趣愛好,我也沒有非得給它立下個flag,讓它成為...
    聰明的阿何同學閱讀 335評論 0 1
  • Easy 思路不難,但題意一開始不好懂. 而且寫起代碼來好些地方細節還得注意才行.首先這道題跟之前house ru...
    greatseniorsde閱讀 222評論 0 0
  • 來到紅蛇波的第六個銀河啟動之門 也是光譜之月的最后一天 同時也是我流日紅月波的最后一天宇宙紅龍 今天通過銀河啟動之...
    韻律wd小潔閱讀 260評論 0 0