这里写目录标题
- 一 ECMAScript相关介绍
- 二 ES6
- ES7 新特性
- ES8 新特性
- ES9 新特性
- ES10 新特性
- ES11 新特性
一 ECMAScript相关介绍
什么是ECMAScript
版本特性概述
二 ES6
1 为什么学习ES6
2 ES6 let 关键字
(1)变量不能重复声明
(2)块级作用域
代码块中才有效
不仅是{ } 内 if else while for 都是块级作用域
(3)不存在变量提升
(4) 不影响作用域链
例子
绑定事件
如果使用var 会数组越界 因为 var 是全局变量 i 会变成item.length 造成数组越界
3 ES6 const常量(不可修改) 关键字
通过第5点可知 变量和对象建议使用 const赋值
4 ES6 变量的结构赋值
数组的解构
对象的解构
对象方法的解构
5 ES6 模板字符串
6 ES6 简化对象写法
7 ES6 箭头函数
(1)箭头函数的this是静态的 this始终指向函数声明时所在作用域下的this的值
(2) 箭头函数 不能作为构造函数 构造实例化对象
(3) 箭头函数 不能使用argument 变量(保存实参)
(4) 箭头函数的简写
箭头函数的实践
箭头函数的this指向声明函数时的的外层
箭头函数适合的场景
箭头函数适合与this 无关的回调 如定时器 , 数组的方法的回调
箭头函数不适合 与 this 有关的回调 如事件回调, 对象的方法
8 ES6 函数参数(形参)默认值
##9 ES6 rest参数
9 ES6 扩展运算符
应用
数组的合并
数组的克隆
伪数组转为真正的数组
10 ES6 Symbol
Symbol的介绍和创建
js的七种类型
USONB you are so NB
U : undefined
S : string symbol
O : object
N : null number
B boolean
对象添加 Symbol 类型的属性(独一无二的属性)
game里已经有up down的方法 但是开发人员有可能不知道 用Symbol的方式添加相对安全
Symbol 的内置属性
控制对象在特定场景下的表现 具体可以看下面的结果示例