[笔记系列文章说明]: 该类型的文章是笔者学习过程中整理的学习笔记.
ECMAScript6 是JS的版本升级,主流浏览器和手机固件都已支持解析. 对过去来说的JS其实也是ECMAcript, 不过是老版本,名字也没有变. 6版本对JS的编写规则进行了封装, 形成了一套新的编写方式. 对于不支持解析的容器上,
可以通过EC6转EC5工具进行转换后运行(如Babel)
背景故事
ECMAScript 和 JavaScript 的关系 ECMAScript是发布国际标准的组织,JavaScript是Netscape创建的,后提交给ECMAScript ECMAScript= 标准 JavaScript= 实现(
3.0)
ECMAScript的版本 从3.0到 3.1=5 到6 中间版本没有通过…
语法
新的关键字
一, let(只作用于代码块内的变量声明关键字)
1 | { |
1, 适用于局部使用的变量: for循环, 临时变量 2, let非顺序执行将报错,var将显示undefined(var的变量提升未执行先使用将导致undefined)
3, let在区块中后者覆盖前者,前者将报错失效(单位内唯一性)
4, var中作用域为全局和方法中, ECMA6增加区块作用域,使用let实现
二, const(常量声明且初始化)
1 | const DEFAULT_VALUE = 3; |
1, 声明后必须赋值 2, 再赋值将报错 3, 支持区块作用域 4, 地址级别的常量,类似JAVA中的对象常量
三, class
1 |
1,
四, import
1 |
1,
解构(新的赋值方式)
数组
1 | 老的方式 |
对象
1 | 老的方式 |
字符串
1 | 略 |
字符串的扩展
支持unicode标识标识字符
1 | let a = "aa"; |
字符串遍历字符
1 | for (let ch of "abc"){ |
模板字符串
1 | 反引号``中间内容代表模板字符串(数字1左边的按键) |
新的方法
1 | 是否包含 |
正则
1 | 支持正则的方法: match(), replace(), search(), split() |
数值的扩展
二进制,八进制表示
1 | 0b111110111 === 503 // true |
Number工具
1 | Number.isFinite() // 是否是有限的 |
Math工具
1 | 略 |
大整数(BigInt), 支持更大的数值表示
1 | 略 |
数组扩展方法
1 | sort() // 排序 |
对象扩展
快捷赋值
1 |
|
属性遍历
1 | 1, for...in |
新关键字super
1 | 只能这么写,其他形式报错 |
比较
1 | Object.is(a,b) // true false |
拷贝
1 | 浅拷贝 |
新增数据结构
SET
1 | let s = new Set(); |
Map
1 | let m = new Map(); |
循环
Iterator
1 | 集合: 数组, 对象, MAP, SET |
Class
新的语法糖
1 | class Point { |
继承特性
模块引入
编码规范&风格
1 | 1, let取代var |