let和const命令
let 命令:
- 所声明的变量只在let命令所在的代码块内有效。
- for循环的计数器就很适合使用let命令。
- 不存在变量提升
- 暂时性死区:只要块级作用域内存在let命令,它所声明的变量就“绑定“在这个区域,不在受外部的影响。
- 在相同作用域中不允许重复声明
块级作用域
- let实际上为javascript新增了块级作用域
- ES6允许块级作用域的任意嵌套。
- ES5规定,函数只能在顶层作用域和函数作用域中声明,不能再块级作用域中声明。
- ES6引入了块级作用域,明确允许在块级作用域之中声明函数。在块级作用域中,函数声明语句的行为类似于let,在块级作用域之外不可引用。
do表达式
- 在块级作用域之前加上do,使它变为do表达式,然后就会返回内部最后执行的表达式的值。
const命令
- 声明一个只读常量,一旦声明,常量的值就不能改变。
- 实际上const保证的并不是变量的值不得改动,而是变量指向的那个内存地址不得改动。
- 对于简单类型的数据,值就保存在变量指向的那个内存地址。
- 而对于复合类型的数据,变量指向的内存地址,保存的只是一个指针,const保证这个指针固定,而它指向的数据结构是不能控制的。
ES6声明变量的六种方法
ES5:var 和 function
ES6:let, const, import, class
顶层对象的属性
- 顶层对象,在浏览器环境指的是window对象,在node指的是global对象。ES5之中,顶层对象的属性与全局变量是等价的。
网友评论