ES6中var、let、const、箭头函数、set和map

var和let的区别

1.let不存在变量提升

由于在解析HTML代码时浏览器有预解析,所以var的声明会被提前,但不赋值。而在ES6中let不存在变量提升,只能按顺序解析。

2.同一作用域下不能重复定义同一名称

使用var定义同一名称的两个变量时,最后识别的值是最后一个定义的值;使用let定义同一名称的变量时,会出现相应错误。

//错误
let m=100;
let m=1;
//正确,可更改值
let n=100;
n=1;

3.有着严格的作用域

var属于函数作用域,let属性块级作用域

const

const声明一个只读的常量,一旦声明,常量的值就不能改变。注意:是常量。
const不能只声明不赋值;
const定义对象或数组时可以改变;

箭头函数

简化了函数的定义

let f=v=>v;//变量名=参数=>返回值(函数体)
//类似于
var f=function(v)=>{
	return v;
}

set和map

set类似于数组,成员是唯一的
map类似于对象

const s=new set();
s.add(1).add(2).add(2).add(3);

最后输出的是s=[1,2,3],不重复
面试时想要把一个数组中重复的内容去掉时就可以使用set
列如

var arr=[1,1,2,3,4,5,4,8];
var arr1=[...new set(arr)];

map如下

const m=new map();
m.set('name','jz').set('age','20');
for(let[key,value] of m){
}

key就是name、age
value是jz、20

你可能感兴趣的:(ES6中var、let、const、箭头函数、set和map)