ECMAScript介绍
- ECMA:欧洲计算机制造商协会(European Computer Manufacturers Association)。
- ECMAScript:由ECMA国标制定的脚本程序设计语言
ES6新特性
- let关键字:变量声明使用let关键字,弃用var关键字
//let a = 100
// 1. let关键字声明的变量不允许重复声明
//let a = 300 // Identifier 'a' has already been declared
// 2. let声明的变量a存在块级作用域
for (let a = 0; a <= 3; a++) {
}
console.log(a) // a is not defined
- const关键字:声明同时定义常量
const PI = 3
// 1. 常量的值不允许被修改
PI = 3.14 // Assignment to constant variable.
// const关键字类似于C语言中的指针常量,不允许修改const关键字修饰的变量的值
// 所以一般声明对象类型使用 const,非对象类型声明选择 let
// 对象类型包括字符串和数组
const obj = {
name : '张三',
age : 23
}
// 对象的地址值不可以变化,但是对象中的属性内容可以
obj.age = 33
obj = {} // error:Assignment to constant variable
- 解构赋值
// 1.数组的解构赋值
const arr = [1,2,3]
let [a,b,c] = arr
// 2.对象的解构赋值
const obj = {
name: '张三',
age: 23
}
let {name,age} = obj
- 模板字符串:使用反引号标识
// 1. 模板字符串中可以出现换行
const str = `Hello,
World`
// 2.模板字符串可以和变量进行拼接
let name = '张三'
const string = `Hi,${name}`
- 对象的写法可以简写
// 对象中的属性和方法可以简写
let name = '张三'
function func() {
}
const obj = {
// 等价于name: name
name,
// 等价于func: func
func,
}
- 箭头函数:注意this指针的指向问题
- rest参数:用在函数形参上,用于获取函数的实参,代替arguments
// rest参数适用于函数参数不定的函数
function func(...args) {
console.log(args)
}
func(1,2,3,'test')
- spread扩展运算符用于函数实参上面,也是三个点。可以将一个数组转为用逗号分隔的参数序列,对数组进行解包。
const obj = [1, 2, 3]
function func() {
console.log(arguments)
}
func(...obj)
- Symbol:ES6引入一种类似于字符串的新的原始数据类型
- 迭代器Iterator:ES6提供新的遍历方式,使用for...of循环。具备Iterator接口的类就可以使用这种遍历方式
- 生成器:生成器函数是ES6提供的一种异步编程解决方案
- Promise:Promise是ES6引入的异步编程的新解决方案。语法上 Promise是一个构造函数,用来封装异步操作并可以获取其成功或失败的结果。
- Set:ES6提供的一种新的数据结构,可以去重
- Map:ES6提供的一种新的数据结构,键值对的集合
- 引入类的概念,可以通过关键字class定义类
- ES6的模块化
- import关键字
- export关键字