对象拓展运算符 ...
let arr1=['www','jspang','com'];
//let arr2=arr1;
let arr2=[...arr1];
console.log(arr2);
arr2.push('shengHongYu');
console.log(arr2);
console.log(arr1);
如果第三行不加 … 则arr2会调用arr1的内存,最终会对arr1进行修改。
…相当于传参(指针)。
rest运算符 ...
和对象拓展运算符很像,也是...
和for ... of
一起用
多用for ... of
循环
字符串模板``
用``
可以代替字符串拼接。在``
中可以使用${变量}
,而且可以在括号中进行简单的计算。
字符串判断
es5只能用indexOf()判断,并且只会返回索引而includes()
、startsWith()
、endsWith
则直接返回boolean
。
复制字符串
console.log("abc",repeat(3));
数字进制
二进制:0 b 01010101
八进制:0 o 2341236
数组遍历
用for(let 数据 of 数组)
获得函数需要的参数个数
函数名.length
函数解构
可以直接将json
和数组
当作函数参数传入。
in的用法
可以用来做数组判断。
先来看一下ES5判断的弊端,以前会使用length属性进行判断,为0表示没有数组元素。但是这并不准确,或者说真实开发中有弊端。
let arr=[,,,,,];
console.log(arr.length); //5
上边的代码输出了5,但是数组中其实全是空值,这就是一个坑啊。那用ES6的in就可以解决这个问题。
let arr=[,,,,,];
console.log(0 in arr); //false
let arr1=['jspang','技术胖'];
console.log(0 in arr1); // true
注意:这里的0指的是数组下标位置是否为空。
Set:一种数据结构
和数组很像。区别是不允许有重复的值。
Map:一种数据结构
允许各种数据类型(对象或数组而不仅仅是字符串)作为key或value。
Proxy:钩子函数
钩子函数就是生命周期函数。可以在函数运行前或之后等时候使用hook。
Class
es6中可以使用class关键字创建一个类,构造函数用construer。
Promise
对es5回调地狱
的解决方式。
学习暂时告一段落,接下来继续学习koa2。
有关es6更多的内容可以直接到阮一峰的es6教程查看。