1.const和let
1.1 函数变量提升
用var声明变量时,无论声明在何处,都会被视为声明在函数的最顶部(不在函数内即在全局作用域的最顶部)。例:
1 | function a() { |
相当于:
1 | function a() { |
即无论有没有执行if语句,test这个变量都会被创建。
1.2 let和const
若用let和const声明,let表示变量,const表示常量。let和const都是块级作用域,即在{}大括号内起作用。
(1)let
1 | function a() { |
test的作用域只在if条件语句中。
(2)const
1 | const name = 'lux'; |
2.字符串模板
(1) 字符串拼接
1 | const name = 'lux' |
(2)用反引号进行多行字符串拼接:
1 | const template = `<div> |
(3)字符串常用方法
1 | // 1.includes:判断是否包含然后直接返回布尔值 |
3.函数
(1)为函数参数提供默认值
ES6为参数提供了默认值。在定义函数时便初始化了这个参数,以便在参数没有被传递进去时使用。
1 | function action(num = 200) { |
(2)箭头函数
箭头函数特点:
不需要function关键字来创建函数
省略return关键字
继承当前上下文的 this 关键字
1 | //例如: |
当函数有且仅有一个参数的时候,可以省略掉括号。当函数返回有且仅有一个表达式的时候可以省略{};例如:
1 | var people = name => 'hello' + name |
1 | var people = (name, age) => { |
4.拓展的对象功能
4.1 对象的初始化简写
(1)键值对重名
1 | function people(name,age) { |
(2)为对象添加方法
1 | const people = { |
相当于1
2
3
4
5
6const people = {
name:'lux',
getName:function() {
console.log(this.name)
}
};
4.2 Object.assign()
const obj = Object.assign(target,...source)
target:目标对象,source:源对象
用于把一个或多个源对象的可枚举属性复制到目标对象中(浅复制),返回值为目标对象。
在实际项目中,我们为了不改变源对象,一般会把目标对象传为{}。即:const obj = Object.assign({},...source)
5.解构
将一个数据结构分解为更小的部分的过程。
1 | var [first, second, third] = someArray; |
1 | //对象 |
6.Spread Operator展开运算符
展开运算符(spread)是三个点(…),可以将数组转为用逗号分隔的参数序列。
6.1组装数组或对象
1 | //数组 |
6.2获取数组或对象的某几项
1 | //数组 |
6.3组成新的Object
1 | const first = { |
7.import/export
1 | //全部导入 |
1.当用export default people导出时,就用 import people 导入(不带大括号)
2.一个文件里,有且只能有一个export default。但可以有多个export。
3.当用export name 时,就用import { name }导入(记得带上大括号)
4.当一个文件里,既有一个export default people, 又有多个export name 或者 export age时,导入就用 import people, { name, age }
5.当一个文件里出现n多个 export 导出很多模块,导入时除了一个一个导入,也可以用import * as example