1、es6(2015)
js的语法规范标准ECMAScript。
2、let、const关键字
var:有变量声明提升之说;变量可以重名。
let:声明的是块级变量(块级作用域);无变量声明提升之说;变量不能重名。
const:声明常量(声明一次且赋值一次且在声明时赋值);声明的是块级常量。
3、{}对象的解构赋值
let{name,age}={name:‘121’,age:20},变量可以无顺序,应用在函数传参中,语义化。
对象的强制结构:var obj1={...obj,a=1};,将obj克隆到obj1,可以添加参数,修改和添加。
4、[]数组的解构赋值
var [a,b,...c]=[1,2,3,4],变量按顺序,...c装剩余的参数,并且用数组封装,...c只能放在最后。
5、箭头函数()=>{}
形参只有一个可以省略();函数体里面只有一条语句,可以省略{},可以省略return;
this是静态的,this始终指向函数声明时所在作用域下的this的值;不能作为构造函数实例化对象,即不能用new调用;不能使用arguments变量。
闭包:var a=()=>()=>123;,函数返回一个函数,返回的那个函数返回123。
6、字符串声明反引号``
内容中可以直接出现换行符;变量拼接${变量}。
7、简化对象写法
name:name,简化为name;meth:function()简化为meth()。
8、参数赋初始值
形参初始值,一般具有默认值的参数要靠后写;与解构赋值结合,将解构赋值应用在函数传参中。
9、rest参数:获取实参,替代arguments
形参写成...args,这样可以获取所传参数的数组对象;必须放在最后,放在其他参数的后面。
10、spread扩展运算符:...
...扩展运算符可以将数组转换为由逗号分割的参数序列;
11、Symbol
新加的基本数据类型,类似于字符串值唯一,解决命名冲突问题;不能与自己或其他数据进行运算。
声明:let a=Symbol(‘1234’),其中的字符串只是一个标识;let a=Symbol.for(‘1234’),函数对象,此时字符串代表名字,唯一的。
使用:给对象添加属性和方法。
Symbol属性:指向语言内部的方法。
12、迭代器Iterator
一种接口,完成遍历操作,服务for...of遍历循环
13、生成器(函数):解决异步编程
声明时在function后面加一个*;执行时要调用next()方法才会执行,纯回调函数;函数代码的分隔符yield。