科学在发展,技术在进步。ES6的发展是必然的。下面提到的语法可能也就是es6新特性的10%-20%,但是开发上占了80%左右的。废话不多说。
1.let const
const:在ES6中,一般用于声明常量,声明后不可更改
let:不可以重复声明,不会提前声明,会形成块级作用域{}
let和var区别在于,let有块级作用域的的区分概念。
如下实例
第二个实例中。let在花括号中形成了作用域,而用var声明的话,相当于声明了一个全局变量。
2.arrow function
图片中第一个sum函数是ES6的写法,第二个sum函数是换成ES5的写法。
箭头函数可以继承上下文的this
需要注意的是,在ES5中,函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。
在ES6中,this指向的固定化,并不是因为箭头函数内部有绑定this的机制,实际原因是箭头函数根本没有自己的this,导致内部的this就是外层代码块的this。正是因为它没有this,所以也就不能用作构造函数。
同时,ES6不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用Rest参数代替。
3.template string(模板字符串)
在ES6中,我们可以使用新的语法$ {NAME},并把它放在反引号里。
在多行字符串的拼接中,使用反引号即可完成拼接。
3.Default Parameters(默认参数)
在ES5中,我们设置默认参数需要用上叙link1方法。同时,传参的时候需要注意!不能传0。因为0是false。传进去不能达到你预期的效果。在ES6中的默认参数,可以直接写在传参里面。是不是觉得省事很多。同时,传0的缺陷也得到了解决
4.destructuring(解构赋值)
ES6中的解构赋值,也使用得很广泛。
ES6结构赋值也可以反过来,如上叙的图片最后一行。
当然,这只是冰山一角,ES6还提供了很多新功能。有兴趣的可以详细了解
1、Class (类)构造函数
2、 Modules (模块)
3、 Promises(处理异步)
4、全新的Math, Number, String, Array 和 Object 方法
5、二进制和八进制数据类型
6、默认参数不定参数扩展运算符
7、Symbols符号
8、tail调用
9、Generators (生成器)
10、New data structures like Map and Set(新的数据构造对像MAP和set)
网友评论