ES6语法

1let和const

var 可以重复声明,无法限制修改(无法定义常量),没有块级作用域。

let ,const 不能重复声明,

let有块级作用域,var没有块级作用域。使用let声明变量不能重复声明一个变量,如下图是错误的

{
let a=1;
let a=2;}

 const声明的常量是不能修改的。const也有块级作用域,声明的时候必须赋值。以下代码是错误的

{
const  PI;
PI=3.14;
}

 但是如下代码是正确的,因为对象是引用类型,只要不修改存储对象指针即可

{
  const k={a:1}
  k.b=2;
}

2数组方法

map一个对一个

[1,2,3,4,5,6,7,8,9,10,11,12,13].map(x=> x*2)

reduce 汇总,多个对一个

 

,filter,forEach

2解构赋值

数组解构赋值

{
   let a,b,rest;
   [a,b]=[1,2]//a=1,b=2
}
{
   let a,b,rest;
   [a,b,...rest]=[1,2,3,4,5,6]//a=1,b=2,rest=[3,4,5,6]
}

对象解构赋值

{
   let a,b;
   {a,b}={a:1,b:2};
}

为变量赋值默认值

{
   [a,b,c=2]=[1,1]//a=1,b=1,c=2
}

解构赋值应用

  • 交换变量(不用使用中间变量)
  • {
      let a=1;
      let b=2;
      [a,b]=[b,a]
    }
  • 接受返回值为对象或数组的函数返回值
{
    function f(){
               return [1,2];}
  let [a,b]=f();//a=1,b=2
}
  • 接受json数据(比较常用)

3set和map

set元素不能重复(经常用在数组去重)。add添加元素,delete删除元素,clear清除所有元素,has判断是否有某个元素。

{
   let set1=new Set();
   set1.add(1);
   set1.add(2);
   console.log(set1.size)//2 ,集合长度属性为size
   let set2=new Set([1,234,4,56]);
   }
{
   let arr=[1,2,3,4,5,2];
   let set=new Set(arr)//1,2,3,4,5
   
}

set元素遍历方法

1.entries()

语法:mySet.entries()

返回值:一个新的包含 [value, value] 形式的数组迭代器对象,value 是给定集合中的每个元素,迭代器 对象元素的顺序即集合对象中元素插入的顺序

    let mySet = new Set();
    mySet.add("foobar");
    mySet.add(1);
    mySet.add("baz");
 
    let setIter = mySet.entries();
 
    console.log(setIter.next().value); // ["foobar", "foobar"]
    console.log(setIter.next().value); // [1, 1]
    console.log(setIter.next().value); // ["baz", "baz"]
2values()

语法:mySet.values() 或者 mySet.keys()

返回值:返回一个 Iterator  对象,这个对象以插入Set 对象的顺序包含了原 Set 对象里的每个元素
    let mySet = new Set();
    mySet.add("foo");
    mySet.add("bar");
    mySet.add("baz");
 
    let setIter = mySet.values();
    console.log(setIter.next().value); // "foo"
    console.log(setIter.next().value); // "bar"
    console.log(setIter.next().value); // "baz"
3forEach()

语法:mySet.forEach(callback[, thisArg])

参数:
        callback 每个元素都会执行的函数
        thisArg 当执行callback函数时候,可以当作this来使用
    let mySet = new Set(["foo","bar",undefined]);
    mySet.forEach((value1,value2,set) => {
        console.log("key =",value1,",value =",value2); // key = foo ,value = foo
    });

map  里的key值可以是任何类型

1Map的定义。

//空map设值key-value
var m = new Map();
m.set("XiaoMing",99);
m.set("XiaoHong",66);
//构造参数传key-value
var m = new Map([['XiaoMing', 99], ['XiaoHong', 66]]);

 2Map中的方法

var m = new Map(); // 空Map
m.set('XiaoMing', 99); // 添加新的key-value
m.has('XiaoMing'); // 是否存在key 'XiaoMing': true
m.get('XiaoMing'); // 99
m.delete('XiaoMing'); // 删除key 'XiaoMing'
m.get('XiaoMing'); // undefined

3对一个key重复设值,后面的值会将前面的值覆盖。

var m = new Map();
m.set('XiaoMing', 99);
m.set('XiaoMing', 98);
m.get('XiaoMing'); // 98

 4Symbol

概念:提供一个独一无二的值。

{
   let a1=Symbol();
   let a2=Symbol();
   console.log(a1===a2);//false
   let a3=Symbol.for('a3');//key值是a3
}
{
   



}

4字符串变量

以前,把多个字符串连接起来,可以用+号连接

但要是有很多变量需要连接,用+号就比较麻烦了。ES6新增了一种字符串连接方式:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值