ES6笔记-let

扩展作用域

读书地址:http://es6.ruanyifeng.com/#docs/let

  • 传统JavaScript中变量作用域包括全局作用域以及函数作用域;

  • 函数内变量申明有提升功能;

  • 块级作用域 {}可以使用let 定义块作用域,此处无变量声明提升;

  • 新名词术语: 暂时性死区

ES6明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错。


vartmp=123;

if(true) {

tmp='abc';// ReferenceError

let tmp;

}


  • 块级作用域内申明函数,仍然走变量申明提升,不做更改;

  • 块级作用域内变量值,无法返回,后期使用 do 语法返回

  • let 变量将于window,global全局对象脱离;

var a = 1;
// 如果在 Node 的 REPL 环境,可以写成 global.a 或者采用通用方法,写成 this.a
window.a // 1

let b = 1;
window.b // undefined

你可能感兴趣的:(ES6笔记-let)