ECMAScript新特性
新特性分类
-
解决原有语法上的一些问题或不足
let、const…
-
对原有语法进行增强
解构赋值、展开运算符、剩余参数、模板字符串…
-
全新的对象、全新的方法、全新的功能
Promise、Proxy、Object.definedProperty…
-
全新的数据类型和数据结构
Symbol、Set、Map…
var、let、const与块级作用域
作用域可以分为:
-
全局作用域
-
函数作用域
-
块级作用域
一个代码块内的作用域,{}
var、let、const:
var:
函数作用域,存在变量提升,可重复声明
let:
块级作用域,不存在变量提升,不可重复声明,存在暂时性死区问题(块级作用域内,使用全局变量后再用let声明同名变量,会导致报错)
const:
用来声明常量,声明时必须赋值,一旦定义无法修改,不可重复赋值。
块级作用域,不存在变量提升,不可重复声明,存在暂时性死区问题
**注意:**若使用const声明一个值为对象的变量,不能对变量赋值为新的对象,即不能修改其内存地址,但可以修改对象的属性。