1.模板字符串
模板字符串中的换行和空格都是会被保留的
字符串插入变量和表达式,变量名写在 ${}
中,${}
中可以放入 JavaScript 表达式:
let name = "Mike";
let age = 27;
let info = `My Name is ${name},I am ${age+1} years old next year.`
console.log(info);
// My Name is Mike,I am 28 years old next year.
2.let 与 const
ES2015(ES6) 新增加了两个重要的 JavaScript 关键字: let 和 const
let、const、var的区别:
- let声明的变量不再做提升,必须先声明,后使用。
- let声明的全局变量不再是window对象的属性了。
- 在同一个作用域中,不能使用let重复声明一个变量。
- let声明的变量产生了块级作用域,只能在当前块中有效。
注: for循环本身是一个作用域,而循环体是for的子级作用域。const :
声明一个只读的常量,一旦声明,常量的值就不能改变。
3.解构赋值
ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。
3.1数组模型的解构(Array)
//基本
let [a, b, c] = [1, 2, 3];
// a = 1
// b = 2
// c = 3
//可嵌套
let [a, [[b], c]] = [1, [[2], 3]];
// a = 1
// b = 2
// c = 3
//可忽略
let [a, , b] = [1, 2, 3];
// a = 1
// b = 3
//不完全解构
let [a = 1, b] = []; // a = 1, b = undefined
//剩余运算符
let [a, ...b] = [1, 2, 3];
//a = 1
//b = [2, 3]
3.2对象模型的解构(Object)
获取对象的多个属性并且使用一条语句将它们赋给多个变量。
var {
vuex,
vue-router,
vue-cli
} = vue;
等价于:
var vuex = vue.vuex
var vue-router = vue.vue-router
var vue-cli = vue.vue-cli
4.Symbol
ES6 引入了一种新的原始数据类型 Symbol ,表示独一无二的值,最大的用法是用来定义对象的唯一属性名。
ES6 数据类型除了 Number 、 String 、 Boolean 、 Objec t、 null 和 undefined ,还新增了 Symbol 。
5.箭头函数
ES6中新增箭头操作符用于简化函数的写法,操作符左边为参数,右边为具体操作和返回值。
var sum = (num1, num2) => { return num1 + num2; }
//等同于
var sum = function(num1, num2) {
return num1 + num2;
};
6.不定参数
不定参数用来表示不确定参数个数,形如,…变量名,由…加上一个具名参数标识符组成。具名参数只能放在参数组的最后,并且有且只有一个不定参数。
function f(...values){
console.log(values.length);
}
f(1,2); //2
f(1,2,3,4); //4
7.类
在ES6中,class (类)作为对象的模板被引入,可以通过 class 关键字定义类。
class 的本质是 function。
它可以看作一个语法糖,让对象原型的写法更加清晰、更像面向对象编程的语法。