正则表达式与ES6
Contents
- 正则表达式–断言、群组
- ES6–严格模式、箭头函数、解构赋值
正则表达式:
起始符
^
结束符
$
或者
|
断言:
a(?=b)
前端断言:判断后面字符是b的a位置a(?!b)
前端非:(?<=d)a
后端断言:(?<!d)a
后端非:群组:
当match不使用g修饰符时,可以将
()
中内容单独找出来$1
就是第一个()内的内容===群组内容中文匹配:
[\4ue00-\u9fd5]{2,4}
ES6:
严格模式 :
1 2
1.<script typr="module"></script> 2."use strict";
变量必须定义后使用
不能出现相同参数名
不能使用with语句
不能对只读属性赋值
不能使用八进制
不能删除不可删除的属性
eval
不会在外层作用域引入变量-可以将字符串映射为一个JS对象、变量、属性、函数等不使用参数列表的两个属性
不能在顶层使用this
const
/let
:let
定义全局变量不会放在window属性下let
定义后不能重复定义,避免变量覆盖let
定义的变量只能在块语句中生效箭头函数:
是一个匿名函数
1 2 3 4
var fn=a=>a+1; //箭头函数中如果参数仅有一个,可以省略(),如果没有参数或者有一个以上都必须加(); //在箭头函数中,如果语句块仅有一句,并且这句话使用return返回内容,我们可以去除()和return关键字。 var arr1=arr.filter(item=>item>3);
箭头函数中的this将会是箭头函数外上下文环境的this指向
箭头函数最大特征是改变this的指向为当前箭头函数上下文的this。
所有回调函数中this都会被重新指向为window,严格模式除外===>undefined。
解构赋值:
变量交换:
1 2 3 4
var a=3; var b=4; [b,a]=[a,b];//a=4,b=3; //数组解构按照顺序,可以设置默认值
对象解构:
对象解构是按照key解构;
对象中方法解构出来后,成为全局函数,所以对象方法中一旦使用了this,不能解构,解构出来,this的指向发生了改变。===>window。
对象解构中如果key名称同名,则可以使用
:
起别名的方式另外命名。普通函数中传参,有默认值的参数一般写在必填后
普通函数中实参的顺序必须和形参的顺序一致。
参数赋值时如果整体设置默认值,在调用时如果赋值,默认值将会整体覆盖,不启用。单独设置默认值不会被覆盖。
Author Ankang
LastMod 2021-04-01