var的特点
- 函数作用域
let的特点
- 没有变量提升,必须先声明。再调用
- 同一个作用域下不可以重复定义同一个名称
- 块级作用域
function fun(){
let a = 10
if(true){
let a =100
}
console.log(a)
}
输出a为10,因为let为块级作用域。
暂时性死区 let a = b, b = 1
const的特点 (数组和对象指向的是内存,对应的值可修改)
- 没有变量提升,必须先声明。再调用
- 同一个作用域下不可以重复定义同一个名称
- 块级作用域
- 声明之后就得初始化,不能只声明不赋值
- 声明的为只读常量,不能改变
箭头函数
简化了函数的定义
var f = v =>v; //箭头函数后的值为return值
等同于
var f = function(){
return v
}
Set 去重
const a = new Set();
添加
a.add(1)
链式添加:a.add(1).add(2)......
类型转换
将set转为数组
- var a = Array.from(a)
- [...new Set([1,2,3,42,2,1,2])] //...为扩展运算符。var a = [1,2,3] ; var b = ...a 值为 1,2,3 去掉了括号
map
const m = new Map();
添加数据
m.set('id',1).set('name','test') 添加时为键值对添加 键可以为任何类型
循环 for of
for( let [k,v] of m){
.......
}