ES6

在ES6中,新增了两种声明空间的方法,即前文中提及到的let和const


解构赋值

解构: 解开目标的整体结构
**赋值:**将目标中的数据 赋值到我们定义的变量中

每一个对象每个对象都可以有 若干的属性 / 方法(冒号赋值,逗号间隔、 最后一个属性 / 方法 不需要逗号)
可以通过点语法来访问对象中的变量

let obj = {
        a:1,			==>	let a = obj.a;			
        b:2				==>	let b = obj.b;
    }

对象的解构赋值:
{ }中,名字必须和obj中保持一致,也就是说 变量名必须和属性名一致
let {a,b} = obj;
数组的解构赋值:
保持顺序一致

let arr = [1,2,3,4,5];
let [c,d,e,f] = arr;
console.log(c,d);

数组的解构赋值:
变量名的存储顺序 和 字符串中存储的顺序一致

let str = "abc";
    let [a,b] = str;
    console.log(a,b);

展开运算符:

将目标元素拷贝并在使用处展开

 let arr1 = ["a","b","c","d"];
let arr2 = [1,2,3,...arr1,4,5];

剩余参数:

将解构赋值与展开运算相结合
let obj = {
        a:1,
        b:2
    }
let obj2 = {
        ...obj,
        c:3,
        d:4
    }
let {a,b,...c} = obj2; 
console.log(c);

set对象:

作用: 用来构建某一个类型的对象

构造函数: 用来构建某一个类型的对象的函数

Set( ) 可以接受指定目标来作为参数,相较于直接使用new而言可以达到去重效果

let arr = [1,2,2,3,3,4,4,5];
let str = new Set(arr);

方法:

  • size属性:相当于length,返回对象的长度
    str.size;
  • clear方法:清空所有数据
    str.clear();
  • delete( )方法:删除指定数据
    参数: 指定的内容
    返回值:是否成功删除元素(若没有改数据,则会出现不成功)
    str.delete(3)
  • has( ):查找是否具有该元素
    参数: 指定的内容
    返回值: 是否具有该元素(true/false)
    str.has(3)
  • add( ):添加数据
    参数: 添加的内容
    返回值: 添加后的整体内容
    str.add("a");

Map对象

map对象与obj的区别:

  • 相同点:
    它们都允许你按键存取一个值、删除键、检测一个键是否绑定了值
  • 区别:
    • obj的键只能是字符串,但一个Map的键可以是任意值,包括函数、对象、基本类型
    • Map 中的键值是有序的,而添加到对象中的键则不是,因此当对它进行遍历时,Map 对象是按插入的顺序返回键值
    • Object 的键值对个数只能手动计算,而可以通过size属性直接获取一个Map的键值对个数
    • Obj的迭代需要先获取它的键数组,然后再进行迭代,map可以直接迭代

使用方法:

  • size:返回对象的长度
    maps.size
  • clear:清除所有数据
    `maps.clear( );
  • delete( ):删除指定的元素,自带返回值
    参数:键值对数据的key值
    返回值:提示是否删除成功
    maps.delete("a")
  • get(key):获取key值对应的value值
    参数:key 数据的key值
    返回key对应的value值
    maps.get("key1")
  • has(key):是否包含指定的key值
    参数:key 数据的key值
    返回是否包含指定key值
    maps.has("a")
  • set(key,val)
    参数:key 数据的key值和其对应的val值
    maps.set("key2",4321);

你可能感兴趣的:(ES6)