前言
现在前端这个大环境,如果不会ES6还真算是落伍了。今天我就将一些常用的一些有关ES6的一些常用的语法糖,和新添加的一些特性一一列出来。
准备
往往使用ES6开发的前端应用都是要依赖babel这个工具包的(为什么使用babel呢!当然因为为了我们的项目更好的兼容)。至于bable是干什么的!大家可以点击这个!话不多说,接下来为大家es6为我们提供的一系列语法糖!
块级作用域、let和const的用法
什么是块级作用域!
{}中就是一个块级作用域!
我们可以用它替代我们的(fun)()
es6以前我们什么一个变量,往往都是使用var。但是ES6中官方为我们推荐了let,const,两者到底有什么区别呢?
1
2
3
4
5
6
7
8
9
10function test(){
for(let i=1;i<3;i++){
console.log(i);
}
console.log(i);
let a = 2 ;
a = 3;
console.log(a)
}
test() //1,2 3
从这个函数输出的情况可以看出,我们只输出了for循环中的变量。这里就可以看出let只能在同一个块级作用域才能有效声明。
同时我们的变量a也随这我们的改变改变了!
1 | function first(){ |
前者可以看出const声明出来的变量不能进行修改,否则就会报错。
后者就是正常的输出了我们想要的一个object。
使用 let 声明一个可以改变的变量,用 const 声明一个不能被重新赋值的变量。
结构赋值
es6特有的语法糖,很好用。
1 | { |
这个三个块级作用域中是不同类型的结构赋值的声明方法,是不是特别神奇!大家直接用吧!
最好我模拟了从后台拿接口的场景。各位可以跟着套用!
RegExp的变化
我从三个方面来剖析ES5-ES6的变化。
构造函数
1 | { |
在ES5的时候regex3这种声明方法是会报错的因为,RegExp构造函数的参数是一个正则表达式的时候,ES5 不允许此时使用第二个参数添加修饰符!
ES6 改变了这种行为。
字符串的正则方法
字符串对象共有 4 个方法,可以使用正则表达式:match()、replace()、search()和split()。
ES6 将这 4 个方法,在语言内部全部调用RegExp的实例方法,从而做到所有与正则相关的方法,全都定义在RegExp对象上。
- String.prototype.match 调用 RegExp.prototype[Symbol.match]
- String.prototype.replace 调用 RegExp.prototype[Symbol.replace]
- String.prototype.search 调用 RegExp.prototype[Symbol.search]
- String.prototype.split 调用 RegExp.prototype[Symbol.split]
1 | { |
修饰符
1 | { |