ECMAScript6
2017-12-12 17:15:58 0 举报
AI智能生成
ECMAScript6学习笔记
作者其他创作
大纲/内容
let和const命令
let
代码块有效
避免变量提升
暂时性死区
Temporal Dead Zone,TDZ
不允许重复申明
块级作用域
const命令
只读常量
顶层对象的属性
global对象
变量的解构赋值
数组的解构赋值
对象的解构赋值
字符串的解构赋值
数值和布尔值的解构赋值
函数参数的解构赋值
圆括号问题
不能在解构赋值中使用圆括号的三种情况
变量声明语句中
函数参数中
赋值语句中,不能将整个模式,或嵌套模式中的一层,放在圆括号中
可以使用的情况
赋值语句的非模式部分
用途
交换变量的值
[x,y]=[y,x]
从函数返回多个值
函数参数的定义
提取JSON数据
函数参数的默认值
遍历Map结构
输入模块的指定方法
字符串的扩展
Unicode表示法
codePointAt()
String.fromCodePoint()
字符串的遍历接口
for...of
at()
返回字符串中给定位置的字符
normalize()
includes(),stratsWith(),endsWith()
repeat()
padStrat(),padEnd()
正则的扩展
数值的扩展
二进制和八进制表示法
Number.isFinite(),Number.isNaN()
Number.parseInt(),Number.parseFloat()
Number.isInteger()
Number.EPSILON
安全整数和Number.isSafeInteger()
Math对象的扩展
指数运算符
数组的扩展
Array.from()
将类似数组对象、可遍历对象转换为真正的数组
Array.of()
将一组值转换为数组
数组实例的copyWithin()
find(),findIndex()
fill()
entries(),keys(),values()
includes()
数组的空位
函数的扩展
函数参数的默认值
rest参数
...变量名
扩展运算符
将一个数组转为用逗号分隔的参数序列
应用
合并数组
与解构赋值结合
函数的返回值
字符串
实现Iterator接口的对象
Map和Set结构,Generator函数
严格模式
name属性
箭头函数
绑定this
对象的扩展
属性的简洁表示法
对象中允许直接写入变量和函数,作为属性和方法
属性名表达式
可用表达式作为属性名
方法的name属性
函数的name属性,返回函数名
对象方法也是函数
Object.is()
Object.is(x,y)
判断x、y相等情况
Object.assign()
用于对象的合并
浅拷贝而非深拷贝
用途
为对象添加属性
为对象添加方法
克隆对象
合并多个对象
为属性指定默认值
属性的可枚举性
Object.getOwnPropertyDescriptor方法可获取该属性的描述对象
属性的遍历
遍历对象属性的五种方法
for...in
Object.keys(obj)
Object.getOwnPropertyNames(obj)
Object.getOwnPropertySymbols(obj)
Reflect.ownKeys(obj)
__proto__属性,Object.setPrototypeOf(),Object.getPrototypeof()
__proto__属性
读取或设置当前对象的prototype
使用下面的
Object.setPrototypeOf()
(写操作)、Object.getPrototypeOf()
(读操作)、Object.create()
(生成操作)代替 Object.keys(),Object.values(),Object.entries()
对象的扩展运算符
解构赋值
浅copy
不会copy继承自原型对象的属性
用途:扩展某个函数的参数
扩展运算符
可用于合并两个对象
修改/扩展现有对象的部分属性
Object.getOwnPropertyDescriptors()
返回某个对象属性的描述对象
Symbol
新的原始数据类型,表示独一无二的值
是JavaScript的第七种数据类型
Undefined
Null
Boolean
String
Number
Object
Symbol
应用
模块的Singleton模式
指:调用一个类,任何时候返回的都是同一个实例
Set和Map数据结构
Set
特殊数组,无重复值
遍历方法
keys()
values()
entries()
forEach()
Map
键值对
不限于字符串作为键,对象也可以
属性及方法
size
返回Map结构的成员总数
set(key,value)
设置键值并返回Map
可以链式方法
has
delet
clear
遍历方法
keys()
values()
entries()
forEach()
Proxy
元编程(meta programming)
对编程语言进行编程
在目标对象之前架设一层拦截,外接对该对象的访问,都必须先通过这层拦截
因此可对外接的访问进行过滤和改写
应用
web服务的客户端
数据库的ORM层
Reflect
Iterator和for...of循环
Generator函数
特性
yield语句总是返回undefined,也可认为是没有返回值
next()的参数作为上一个yield语句的返回值
异步应用
子主题
回调函数
事件监听
发布订阅
Promise函数
只是回调函数的改进,将横向的回调改为了then
问题:代码冗余,出现一堆then
子主题
子主题
Promise对象
异步操作和Async函数
Class
Decorator
Module
编程风格
0 条评论
下一页