let
1.用于声明变量
2.let声明的变量不能重复声明
3.let声明的变量不能变量提升
4.块状作用域 eg.点击li弹出的第n个
5.使用let声明的变量不属于顶层对象
const
1.用于声明变量
2.声明常量用大写 不是规则是一种moqi
3.常量不能修改
4.块状作用域
5.使用const声明的常量也不属于顶层对象
变量的解构赋值
数组的解构赋值
var [a,b,c] = [1,2,3];
console.log(a,b,c);
//可以给变量添加默认值:a=1
对象的解构赋值
let {bar,foo} = {bar:"lili",foo:100};
console.log(bar,foo);
特殊对象的解构赋值
//字符串做数组
let [a,b,c] = "var";
console.log(a,b,c);
//字符串做对象
let {length: len} = "function";
console.log(len);
//Math的应用
let {PI:p} = Math;
console.log(p);
实际应用
//交换2的变量的值
let a = 100;
let b = 200;
[a,b] = [b,a]
//提取jsonData中的数据
let jsonData = {
id: 1,
status:"okokok",
data: [1,2,3,4,5]
}
let {id,stayus,data} = jsonData;
//用于函数参数默认值
function fn({id,name="张三"}){
console.log(id,name);
}
fn({id:4});