第一章 let命令
1.let声明的变量只在变量声明时所在的代码块内有效
对比:
{
var url = "www.baidu.com";
}
alert(url);
//--------------------------------
{
let url = "www.baidu.com";
}
alert(url);
2.let不允许在同一作用域重复声明变量:
let url = "www.baidu.com";
{
let url="www.sina.com.cn";
console.log(url);
}
正确,放到括号里面错误
3.let与全局变量的声明
//错误
let a=3;
{
var a=5;
}
alert(a);
//正确
var a=3;
{
let a=5;
}
alert(a);
4.作用到子作用域
let a=3;
{
a=5; //子作用域
}
alert(a); //弹出5
第二章 const命令
const命令用来生成一个常量,常量被声明后,值无法改变。其他与let相同。
第三章 解构赋值
1.数组解构
let [a, b, c,d] = ["aa", "bb", 77,88];
嵌套数组解构
let [a,b,[c,d],e] =["aa",'bb',[33,44],55];
空缺变量
let [a,b,,e] =["aa",'bb',[33,44],55];
多余变量
let [a,b,,e,f] =["aa",'bb',[33,44],55];
默认值
let [a,b,,e,f='hello'] =["aa",'bb',[33,44],55];
2.对象解构
let obj={uid:121,uname:'张三'};
let obj=new Object();
obj.uid=111;
obj.uname='张三';
let {uid:id,uname:name}=obj; //顺序改变无影响
alert(name);
小括号:
let uid,uname;
({uid,uname} = obj); //必须有小括号,否则{}就会被解读为语句块
alert(uname);
可嵌套
可有默认值
3.字符串解构
let [a, b, c, d] ="倚天屠龙";
console.log(a,b,c,d);
4.函数参数解构
let obj={uid:121,uname:'张三'};
function analysis({uid,uname}){
alert(uid);
alert(uname);
}
analysis(obj);
//-------以下也正确
function analysis({uname}){
alert(uname);
}
参数中数组、字符串、默认值、缺位均支持