ES6新特性新特性
ES6语法
Tags: javascript
[TOC]
const 与 let 变量
使用var带来的麻烦:
运行getClothing(false)后输出的是undefined,这是因为执行function函数之前,所有变量都会被提升, 提升到函数作用域顶部.
let与const声明的变量解决了这种问题,因为他们是块级作用域, 在代码块(用{}表示)中使用let或const声明变量, 该变量会陷入暂
时性死区直到该变量的声明被处理.
运行getClothing(false)后输出的是ReferenceError: freezing is not defined,因为 freezing 没有在 else 语句、函数作用域或全局
作用域内声明,所以抛出 ReferenceError。
关于使用let与const规则:
使用let声明的变量可以重新赋值,但是不能在同一作用域内重新声明
使用const声明的变量必须赋值初始化,但是不能在同一作用域类重新声明也无法重新赋值.
模板字面量
在ES6之前,将字符串连接到一起的方法是+或者concat()方法,如
模板字面量本质上是包含嵌入式表达式的字符串字面量.
模板字面量用倒引号 ( `` )(而不是单引号 ( '' ) 或双引号( "" ))表示,可以包含用 ${expression} 表示的占位符
解构
在ES6中,可以使用解构从数组和对象提取值并赋值给独特的变量
解构数组的值:
Prints: 10 25 -34
[]表示被解构的数组, x,y,z表示要将数组中的值存储在其中的变量, 在解构数组是, 还可以忽略值, 例如const[x,,z]=point,忽略y坐
标.
解构对象中的值:
花括号 { } 表示被解构的对象,type、color 和 karat 表示要将对象中的属性存储到其中的变量
对象字面量简写法
使用和所分配的变量名称相同的名称初始化对象时如果属性名称和所分配的变量名称一样,那么就可以从对象属性中删掉这些
重复的变量名称。
简写方法的名称:
匿名函数被分配给属性 calculateWorth,但是真的需要 function 关键字吗?在 ES6 中不需要!
for...of循环