变量的定义:
1. let定义变量
没有变量提升
不能重复定义
块级作用域
2. const定义变量
没有变量提升
带来了块级作用域
不能重复定义
定义之后不能修改
定义的时候必须赋值
模板和字符串:
使用反引号进行字符串的拼接
使用${}去存储变量
数据的解构和赋值:
let ary = [1,2,3];
let [a,b,c] = ary;
解构左右两端数据类型必须一致
函数的扩展:
可以设置默认值参数
箭头函数:
定义: 参数 => 返回值;
定义之后,箭头函数的this是哪个定义就是哪个, 普通函数的this指向调用者
一个参数:
let foo = v => v;
ret1 = foo(10);
console.log(ret1); 10
多个参数:
let bar = v => return{1,2};
ret2 = bar();
console.log(ret2); 3
类的扩展
class关键字定义一个类
必须要有cinstructor方式(构造方法), 如果没有
必须使用new来实例化, 否则报错
继承时候必须在子类的constructor方法中写super方法
class xxx extends 父类
模块化编程
对象的单体模式
解决箭头函数的this指向问题