ES6-let 、const 以及解构赋值

let 定义的变量不会被变量提升,并且是块级作用域,相同作用域下变量不能重复定义;

(()=>{
    console.log(a); //undefined
    var a = 10;
})()
//这个代码相当于  声明被提前,所以会打印undefined
(()=>{
    var a;
    console.log(a);
    a= 10;
})()

//如果用let 声明不会被提前,所以会报错
(()=>{
    console.log(a); //报错 a is not defined
    let a = 10;
})()

//let 是块级作用域,有避免污染全局环境的作用
for(var a=0;a<10;a++){}
console.log(a); //10

for(let a=0;a<10;a++){}
console.log(a); //a is not defined

//注意:如果在同一块作用域内,如果有let声明,就不能在声明之前用这个变量,所以下面会报错
let a= 10;
if(true){
    console.log(a); // a is not defined
    let a = 20;
    console.log(a);
}

let 定义变量在全局作用域中,该变量并不存在于window 对象下,而是存在于script 作用域中,不属于任何对象,可以看作和window对象同级。

let a = 10;
console.log(a); //10
console.log(window.a) //undefined

const 定义常量且不能被修改,同时也为块级作用域;

const a = 10;
a = 20; // Assignment to constant variable

解构赋值

let obj = {
    a :10,
    b : 20,
    c : [30,40]
}
let {a,b} = obj;   //a=10  b=20
let [c,d] = obj.c; //c=30 d=40
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • ES6新增了let关键字 注意1:同一个块级作用域内,不允许重复声明同一个变量。 注意2:函数内不能用let重新声...
    daoqing99阅读 530评论 0 0
  • let 和 const 命令 let 命令 块级作用域 const 命令 顶层对象的属性 gl...
    安小明阅读 1,033评论 0 0
  • let 命令 块级作用域 const 命令 顶层对象的属性 global 对象 let 命令 基本用法 ES6 新...
    嘉奇呦_nice阅读 1,681评论 0 2
  • let 基本用法 let命令,用来声明变量。用法类似于var,但声明的变量,只在let命令所在的代码块内有效。 f...
    oWSQo阅读 478评论 0 0
  • let 命令 块级作用域 const 命令 顶层对象的属性 global 对象 let 命令 基本用法 ES6 新...
    卞卞村长L阅读 669评论 0 0

友情链接更多精彩内容