2017.12.05 ES6笔记

let命令:
1.只在区域块内作用;
2.声明的变量在域解析的时候不会被提升;暂时性死区 查看代码
3.不允许在同一个作用域下声明已经存在的变量;
let在for循环中的应用: 查看代码
在循环语句之内是一个父作用域,在循环体之中是一个子作用域:

for(let i=0;i<3;i++){
    let i=10;
    console.log(i);
}
console.log(i);

const命令 查看代码 同样有上面let的1/2/3条特点,除了这些,在使用const声明常量的时候需要注意的两点:
1.声明的时候必须赋值;
2.声明的常量储存简单的数据类型时候不可改变其值,如果储存的是对象,那么引用不可以被改变,至于对象里面的数据如何变化,是没有关系的。

变量的解构赋值

let a=1;
let b=2;
let c=3;

let [a,b,c]=[1,2,3];
console.log(a,b,c)

本质上就是一种匹配模式,只要等号两边的模式相同,那么左边的变量就可以被赋予对应的值。
解构赋值主要分为:
1、数组的解构赋值: link
2、对象的解构赋值: link
3、基本类型的解构赋值: link

数据结构Set(集合)
集合是由已足够无序且唯一(既不能重复)的项组成的。这个数据结构使用了与有限集合相同的数学概念,应用在计算机的数据结构中。
特点:key 和 value 相同,没有重复的 value。

s.add(1);
console.log(s);  //Set(5){1,2,3,'b','c'}

ES6 提供了数据结构Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。
1. 如何创建一个Set link
2. Set 类的属性: size
3. Set 类的方法:
(1)set.add(value)添加一个数据,返回Set结构本身。
(2)set.delete(value) 删除指定数据,返回一个布尔值,便是删除是否成功。
(3)set.has(value)判断该值是否为Set的成员,返回一个布尔值。
(4)set.clear()清楚所有数据,没有返回值。
(5)keys()返回键名的遍历器
(6)values()返回键值的遍历器
(7)entries()返回键值对的遍历器
(8)forEach()使用回调函数遍历每个成员
思考:如何利用 Set 数据结构为数组去重?

;

JSRUN notes