ES6全称ESMAScript,由ECMA国际标准化组织,是一门脚本语言的标准化规范。
ES6新增用于声明变量关键字let、const。
1.let
let声明变量只在所处于的块级有效,let不存在变量提升,let关键字声明的变量会由暂时性死区特性,在一个大括号中,使用let关键字声明的变量才具有块级作用域。
2.const
const声明常量,常量指值(内存地址)不变化的量 ,常量具有块级作用域,声明常量时必须复制,常量一但赋值之后,值便不能修改,如果是基本数据类型,不能更改值,如果时复杂数据类型,不能更改值的地址。
var | let | const |
函数作用域 | 块级作用域 | 块级作用域 |
存在变量提升 | 不存在变量提升 | 不存在变量提升 |
赋值可更改 | 赋值可更改 | 赋值不可更改 |
3.解构赋值
ES6中允许从数组中提取值,按照对应位置,对变量赋值,对象也可以实现解构
示例:对数组解构
注意:如果解构不成功的话变量值为undefined
let [a,b,c] = [1,3,5]
console.log('a:',a,'b:',b,'c',c)//结果为1,3,5
示例:对对象解构
let num = {
name:'张三',
age:'20'
}
let {name,age} = num;
console.log('name:',name,'age:',age)//结果为name:张三,age:20
console.log('--------------------分割线--------------------------')
let {name:myName,age:myAge} = num;
console.log(myName,myAge)//结果为张三,20
总结:解构赋值就是把数据结构分解,然后给变量赋值,如果解构不成功的话,变量跟数值不匹配的时候,变量值就为undefined,数组的解构中用中括号包裹,多个变量用逗号隔开。对象解构中用花括号(大括号)包裹,多个变量同样用逗号隔开。解构赋值的优点:方便取出对象中的属性跟方法