一、ES6的简介
ECMAScript 6(简称ES6)是于2015年6月正式发布的JavaScript语言的标准,正式名为ECMAScript 2015(ES2015)。它的目标是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企变量业级开发语言。
二、ES6常量和变量
1、let变量
- .let声明的变量不会挂在window中,不会造成全局变量的污染
- .新增了一个块级作用域{},以前只有函数作用域,全局作用域
- .let是不允许重复声明
let a = 1;
let a = 2;
var b = 3;
var b = 4;
a // Identifier 'a' has already been declared
b // 4
- .let不会有声明提前
{
console.log(a); // Cannot access 'xxx' before initialization
let a = 20;
}
//实际上是有声明提前,但是是提前到了临时性的死区中
- .当成封闭空间使用,保护全局变量的安全
- .大型的公司,对项目进行整改
- .代码迁移从es5迁移到es6
- .能使用const就使用const,不能使用就用let。常量的效率比变量要高
2、const常量
- .跟let完全相同 增加几个点
- .不允许被修改,不允许改变内存空间的地址
- .const声明和赋值必须一次性完成,并且后期不允许改变存储空间的地址,一旦声明必须初始化,否则会报错。
const PI = "3.1415926";
PI // 3.1415926
const MY_AGE; // SyntaxError: Missing initializer in const declaration
- .大型的公司,对项目进行整改
- .代码迁移从es5迁移到es6
- .能使用const就使用const,不能使用就用let。常量的效率比变量要高
3、字符串模板
字符串拼接 ${表达式1}${表达式2}${表达式3}
var firstname="张";
var lastname="三";
var newSplicing=`我姓${firstname}名${lastname}`;
console.log(newSplicing); //我姓张名三
4、扩展运算符(…)
收集
- 收集参数 只能放在后面
- 收集符只能出现一次
function sum(a, b, ...args) {
console.log(args); // [3, 4, 5, 6, 7, 8, 9, 10] let sum = 0; Array.from(arguments).forEach(element => {
sum += element; });
return sum; }
console.log(sum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); // 55
- 展开
- 写
- 运用在数组和函数中
- 合并多个数组
var arr1 = [0,1,2];
var arr2 = [3,4,5];
arr1.push(...arr2); // [0,1,2,3,4,5]
console.log(arr1);
- 复制数组
const a = [1,2,3];
const b= a;
const c = [...a];
- object中的话是ES7新增的