ES6学习总结(一)

ES6学习总结(一)

前言

最近读了阮一峰老师的 《ES6标准入门》,这本书涵盖的干货很大,短时间内吸收的有些力不从心。现在重新温习一遍,并把我个人认为比较 常用的方法 或者需要注意的点简单总结下。 另外我将主要章节的知识树作成了 思维导图 分享,部分内容可能在表达上不严谨,仅供初学者参考使用。

1.let 和 const

  • let不会像var一样,存在变量提升 ,所以必须先声明才能使用。{ x ++; let x = 1; //错误 }
  • 块级作用域内不允许重复声明变量{ let x = 0; let x = 1; //错误 }
  • 块级作用域的let声明,可以不受外层影响。
  • 块级作用域函数声明,相当于var声明变量
  • const 声明常量 值不可改动
  • const 声明变量 指向的内存地址不可改动 const a =[]; a.push(0); //正确 a = new Array() //错误

2.解构赋值

  • let [a,b,c] = [1,2,3] ; 相当于 let a,b,c; a = 1;, b = 2 ; c = 3;
  • 默认值 let [a = 1 , b = 2] = []; 相当于 let a = 1,b = 2
  • 对象也可以解构赋值 let {a:a , b:b} = {a:0,b:1} 可简写为 let {a , b} = {a:0,b:1}
  • 函数参数的解构赋值可以这么写
 function add( [x, y]) {
	return x + y
}
add([1,2])    //3

 function add( {x = 1, y = 2} = {}) {   //无参情况下默认参数为一个空对象
	return x + y
}
add();  //3   
  • 尽量不用圆括号
  • 提利用解构赋值取json数据会很方便

具体翻阅ES6标准入门第三章, 这里就不举例了

3.字符串的拓展

  • for…of 可以作用在字符串上,遍历单个字符
  • 模板字符串
let x = 'world'
let s = `hello  ${x}`   
//相当于
let t = 'hello' + x

新增方法

  • includes() 判断是否包含目标字符串
  • startWith() 判断是否以目标字符串开头
  • endWith() 判断是否以目标字符串结尾
  • repeat() 将原字符串重复n次
    ES6学习总结(一)_第1张图片

4.正则表达式的拓展

  • u修饰符 能够识别非规范的大小写 let reg = /xyz/iu
  • y修饰符 与g类似,具有"粘连"效果。 y会保证下一次匹配必须能在开头位置匹配到
let s = 'aa_aa'
let r1 = /a+/g
let r2 = /a+/y
r1.exec(s)  //['aa']
r1.exec(s)  //['aa']

r2.exec(s)  //['aa']
r2.exec(s)  //null  //第二次匹配开头为 ' _ '

  • s修饰符 带有s修饰符的.字符可以匹配包括 /n /r等任意单个字符
  • 后行断言 /(?<=y)x/ ,x只有在y的后边才匹配 如匹配’ 50%’
  • 后行断言否定 /(?
 let reg = /(?<=\$)\d+/   //后行断言
 '$5'.match(reg)
//["5", index: 1, input: "$5", groups: undefined]
  • 具名组匹配 使用(?< name >) 形式给组匹配起名
 let reg = /(?\d+)-(?\d+)/
 '21-2020'.replace(reg,'$ and $') //2020 and 21
  • source 和 flags

let reg = /(?\d+)-(?\d+)/iu 

reg.flags        //"iu"
reg.source       //"(?\d+)-(?\d+)"

ES6学习总结(一)_第2张图片
写的不错,点个赞鼓励下 =v =

下一篇 ES6学习总结(二)

你可能感兴趣的:(JavaScript)