- 说明
- ECMAScript6
- 变量声明
- var
- let
- let 在同一作用域不能重复声明
- let 不会变量提升
- 局部变量只能在声明let的{}中使用
- const
- const 局部 不会变量提升 不能重复声明
- 声明必须赋值
- 声明的数据不能修改(值类型)
- 变量名尽量大写
- 解构
- 数组解构
- 数组解构就是把数组解析为单个变量
- 通过逗号通过

- ...接收剩余量

- 可以给默认值

- 可以交换变量

- 对象解构
-
- 数组解构
- 字符串
- 遍历 for of
- 查找
- includes 是否包含
- starsWith 以...开头
- endsWith 以...结尾
- 补齐
- padStart 填充在前
console.log(a.padStart(3, '1'))
- padEnd 填充在后
console.log(a.padEnd(3, '_'))
- padStart 填充在前
- 去空白
- trim 两端
- trimLeft 左边
- trimRight 右边
- 数组
- sort 排序
- ES6新增
- find
查找符合条件的元素
- findindex
查找符合条件的元素下标
- find
- forEach 遍历
- forEach(function(item,index,self){})
- item 当前遍历元素 index 当前元素下标 self 被遍历的数组
- filter 过滤
- map 映射
- reduce 累计
- reduce(function(a,b){})
- a 上次返回的结果 b当前元素
- some 有一个
- every 每一个
- 箭头函数
- 简写

- =>左侧是参数
- => 右侧是执行语句也是返回值
- 如果有多行语句用{},返回用return
- 如果需要返回对象用({})
- this
- 指向上一个作用域
- 不能作为构造函数
- 简写
- 参数
- 不定参

- 拓展参

- 默认参

- 不定参
- 对象
- object.assign()合并对象
- Object.values()获取值的集合
- ject.keys()获取对象所有键的集合成为一个数组
- object.create()通过现有对象创建一个新的对象
- 对象简写
-
- module 模块
- 导出
- 导出默认
function a(date) {
}
export default a;
- 导出
export function reverse() {
}
- 导出变量
export const PRICE = 500;
- 导出默认
- 导入
- <script type="module"></script>
- 导入默认
import a(a方法名) from '相对路径'
- 导入
import {reverse} from '相对路径'
- 导入别名
import { reverse as r } from './js/1.js';
- 导出
- 类
- type of class
结果是Function
类的本质是函数
- class Block{}
- 构造函数
constructor(){}
实例化的时候 new关键字调用的就是构造函数
- super()
调用父类的构造函数
- extends
继承父类的方法
- static
类的静态属性和方法
- 类的this指向的是它的实例(也就是new出来的对象)
- type of class
- ES6新增数据类型
- set 不重复的数组
- add 添加
- delete 删除
- clear 清空
- size 大小
- map 任意键对象
- set(key,value)设置
- set(key)获取
- delete 删除
- size 大小
- clear 清空
- weak Set 值都是引用类型的set
- wrakMap 键都是引用类型
- symbol 唯一符合(对象的键)
- set 不重复的数组
- 迭代类型
- 可以for of遍历的对象都是可以迭代对象
String字符串
Array数组
Set集合
Map图
- for(let v of myset)
- for(let k of myArr.key())
- for(let v of myArr.values())
- for (let[k,y] of myArr.entries
- 可以for of遍历的对象都是可以迭代对象
- Promise
var p=new Promise((resolve,reject)=>{
//异步状态
resolve(data)
reject(err)
})
- 有三个状态 不可逆
- pendding
- resolved
- rejected
- 实例p
- .then(res=>{})
回调函数获取resolved返回的结果
返回一个新的promise实例
- .catch(err=>{})
获取rejected的原因
- .then(res=>{})
- 解决
- 异步操作
- 回调地狱
- all 全部
- race 赛跑
返回最先resolve结果
- 同步和异步
- 同步是按顺序从上至下阻塞式执行代码
(上一行代码不执行完毕,下一行是不会执行)
- 异步是先执行主线程的代码,再执行其他线程
- 实现异步的方式
- 回调函数
- 事件响应
- 订阅发布模式
- Promise
- sync和await
- 同步是按顺序从上至下阻塞式执行代码
- asyn与await
- async装饰的函数,返回的是一个promise对象 返回的结果是resolved的结果
- await 用来等待异步的resolve结果 只能出现在async装饰的 函数中
- generator 生成器
- 就是在函数前面添加个*
function *range(min,max){
for(var i=min;i<ma;i++
yield i;
}
}
- 生成器执行的结果是一个迭代器
- var iter=range(1,10)
- 迭代器通过next方法返回一个对象,对象的value是yield生成的结果 在生成器里面 遇到yield就停止等待下一次next调用
{value:1,done:false}
......
{value:undefined,done:true}
- 可以通过for来遍历迭代器
for(v of range(1,100){
console.log(v)
}
- String,Array,Set,Map的迭代器
arr[Symbol.iterator]()
- Object.defineProperty
- 可以定义对象的某个属性
- proxy
代理对象- target目标对象
- handle处理器
set(target,property,value){
//拦截set
}
get(target,property){
//拦截set
return target[property]
}
- var proxy=new Proxy(target,handel
Es6笔记 新
于 2022-09-28 20:45:06 首次发布
本文详细介绍了ECMAScript 6(ES6)的新特性,包括变量声明方式(如let和const)、解构赋值、增强的字符串操作方法、数组及对象的新API、箭头函数、模块化开发、类定义、新的数据类型如Set和Map、迭代器和生成器、Promise异步处理、代理对象等。这些特性极大地提升了JavaScript的开发效率。



1025

被折叠的 条评论
为什么被折叠?



