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中键只能是字符串

浙公网安备 33010602011771号