1.let 与 const
共同点:
1.没有“变量提升”现象,必须先声明。
2.只在代码块内有效
3.不可重复声明
不同:
1.const 声明一个只读常量,一旦声明不可改变。
2.let 声明的变量只在代码块内有效 特别适合于for循环
2.顶层对象
1.window 浏览器环境
2.global node环境
3.由var声明的变量为顶层对象 而let const class 声明的变量不属于顶层对象
3.变量的解构赋值
定义:从数组和对象中提取值,对变量进行赋值,这被称为解构。
1.常规
var x = 1;
var y = 2;
var z = 3;
let [x,y,z] = [1,2,3]; //ES6
//x=1
//y=2
//z=3
2.字符串
let [a1,a2,a3] = 'arr';//es6
//a1 = a
//a2 = r
//a3 = r
3.对象
var kid = {k1:'class',k2:'name'};
let {k1,k2} = {k1:'class',k2:'name'};//es6
//ki = class
//k2 = name
4.函数
function Fun([x,y]){
return x*y;
}
Fun([5,6]);//30
4.解构用途
1.变量交互值
let [x,y,z] = [1,2,3];//1,2,3
[x,y,z] = [z,x,y];//3,1,2
2.从函数返回多个值
//返回一个数组
function Arr(){
return [1,2,3];
}
let [x,y,z] = Arr();
//返回一个对象
function obj(){
return {k1:'false',k2:'trun'};
}
let {k1,k2} = obj();
3.定义函数参数
//有序
function Arr([x,y,z]){
...
}
Arr([1,2,3]);
//无序
function obj({c,b,a}){
...
}
obj({a:1,b:2,c:3});
4.提取JSON数据