ES6新特性

ES6新特性

 

let

1 不存在变量提升

2 在同一作用域下不能用同一名称定义,即不能重命

3 JS越来越规范,var 是函数作用域; let 是块级作用域

const

const除同let的3个特性外,它定义一个只读的常量,或一个固定的引用对象,不能改变成另一个对象,对象内容可变更。

1 const x1 = 2
2 x1 =3 //error
3 const x2 //error const不能只定义不赋值
4 const obj = {}
5 obj.name = "Amy"
6 console.log(obj) //right
7 const arr = []
8 arr.push(1) //right

 

 

箭头函数

1 let f = v => v

 

主要目的是简化函数的定义

1 //函数表达式
2 var f = function(v){
3     return v
4 }
5 
6 //函数声明
7 function f(v){
8     return v
9 }

数据结构 set map

ES5 有对象、数组

Set 类似于Array的一种特殊对象, 但成员是唯一的,不能重复

 1 var arr1 = [1,2,3,4,5,4,3,2]
 2 var obj1 = {name:'Linus',age:18,gender:'male'}
 3 
 4 arr1.push(6)
 5 arr1[5]=4
 6 obj1.grade = 1
 7 obj1['grade'] = 1
 8 
 9 const s = new Set()
10 s.add(1)
11 s.add(2).add(3).add(2).add(4) //链式添加法
12 console.log(s) //Set(4) {1, 2, 3, 4}
13 const s2 = new Set(arr1)
14 console.log(s2)//Set(6) {1, 2, 3, 4, 5, 6}
15 
16 //数组去重
17 var arr3 = [12,10,24,12,23,24,51,63,51,51,94,3,6]
18 var s3 = new Set(arr3)
19 arr3 =[...s3] //...是扩展运算符,将后面对象序列化处理
20 //也可简写成
21 var s3 =[...new Set(arr3)]
22 
23 console.log(arr3) //(9) [12, 10, 24, 23, 51, 63, 94, 3, 6]

Map 定义、添加内容、遍历如下:

1 const m = new Map()
2 m.set("name","Linus").set("age",18)
3 for ( let [key,vaule] of m){
4   //todo:
5 }
6 //for of 是ES6的
7 //ES5 中有 for in 

 

 Map中键可以是任意类型,而Object中键只能是字符串

 

posted @ 2020-06-21 18:01  清懿宇雪  阅读(45)  评论(0)    收藏  举报