正则表达式与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)

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,029评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,238评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,576评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,214评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,324评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,392评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,416评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,196评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,631评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,919评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,090评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,767评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,410评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,090评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,328评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,952评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,979评论 2 351

推荐阅读更多精彩内容

  • 我摟着妮妹,望着她。妮妹俯看着我,「我咋就跟你這麼熟呢?」我笑「早就說過,我倆是孽緣。十世都還不清,下輩子還得在一...
    Pope怯懦懦地阅读 198评论 0 1
  • 明明跟宝宝说好了再睡一会的,可还是忍不住想过来写点东西。 宝宝说,我去收拾东西。 我说,去吧。 结果她给我发过来一...
    深蓝不会写小说阅读 354评论 0 1
  • 8月读书也不算多,今年似乎比往年要懈怠。不过我也不强求,读书本是兴趣爱好,我也没有非得给它立下个flag,让它成为...
    聪明的阿何同学阅读 318评论 0 1
  • Easy 思路不难,但题意一开始不好懂. 而且写起代码来好些地方细节还得注意才行.首先这道题跟之前house ru...
    greatseniorsde阅读 213评论 0 0
  • 来到红蛇波的第六个银河启动之门 也是光谱之月的最后一天 同时也是我流日红月波的最后一天宇宙红龙 今天通过银河启动之...
    韵律wd小洁阅读 247评论 0 0