ES6
文章平均质量分 52
ES6的一些知识点
深海有鱼呀
永远年轻,永远热泪盈眶
展开
-
自己实现Promise
new MyPromise((resolve, reject) => { reject('ERROR');}).then(result => {console.log(result)})最基本的Promise (没有数显then链)class MyPromise { constructor(executor) { // 每一个PROMISE实例都有一个状态和结果属性 this.status = 'pending'; this.value = undefined原创 2021-01-26 00:43:35 · 116 阅读 · 0 评论 -
async和await的简单使用
ES7提供了Promise的语法糖 async/awaitasync 是让一个普通函数返回的结果变为status=resolved并且value=return结果的Promise实例async 最只要的作用是配合await使用的,因为一旦在函数中使用await,那么必须当前函数必须使用async修饰async function fn(){ return 2}fn().then((resolve)=>{ console.log(resolve) // 2})let p1 =原创 2021-01-25 17:41:46 · 270 阅读 · 0 评论 -
Promise简单使用
PromisePromise出现为了解决什么问题?Promise出现时为了解决异步请求中的回调地域问题:它是一种设计模式,ES6中提供的内置类Promise,实现了这种模式。一个 Promise 对象代表一个在这个 promise 被创建出来时不一定已知的值。它让您能够把异步操作最终的成功返回值或者失败原因和相应的处理程序关联起来。 这样使得异步方法可以像同步方法那样返回值:异步方法并不会立即返回最终的值,而是会返回一个 promise,以便在未来某个时候把值交给使用者。一个 Promise原创 2021-01-25 16:59:00 · 475 阅读 · 1 评论 -
export和export default
export 的方式 (用于导出多个) 导入用{ }export default (当前文件只有这一个) 引入方式 import printMe from ‘./print.js’;bordered {&.float {float: left;}.top {margin: 5px;}}等同于:.bordered.float {float: left;}.b...原创 2020-06-19 16:47:31 · 98 阅读 · 0 评论 -
箭头函数
箭头函数特点没有 this arguments prototype,没有就向上级作用域找let a = 100; // 此属性不会放到全局上let obj = { a:1, fn:()=>{ // this => obj 没有this指向从而解决了this问题 setTimeout(()=>{ console.log(this.a); }) }}obj.fn(); // undefin原创 2020-08-13 15:46:04 · 73 阅读 · 0 评论 -
装饰器
装饰器 装饰模式 ,在执行类之前可以进行包装注意:只能装饰类装饰器 必须是一个函数,只能修饰类 (类中的属性 还有类中的方法) 参数分别是 类的原型 装饰的key 和key对应的属性描述器原创 2020-08-13 14:10:25 · 112 阅读 · 0 评论 -
class(类)
es5中没有类,我们是用构造函数来模拟类缺点:es5中的类可以当做函数来调用,es6不行属性:1、实例上的属性 2、公共属性对象有自己的属性,属性的属性值可以为任何的内容,当属性值为函数的时候,我们称之为方法。当属性质为对象的时候,称之为子对象使用构造函数模拟类function Animal(){ if(!(this instanceof Animal)){ // 当前是不是通过new来调用的 throw new Error('NOT NEW') }原创 2020-08-12 17:18:29 · 326 阅读 · 0 评论 -
es6模块化
es6模块化怎么使用es6模块 ?esModule模块 (es6) 和 commonjs模块 (node模块)— es6(静态导入:不能在作用域中导入)import…from …导入import …有副作用的导入(可以让文件执行 但是没有使用这个文件中的内容)export—导出export default–导出具体值 每个文件都是一个模块— commonjs模块(动态导入)可以在作用域中导入,例:if(…){ require(XXXX)}import--导入 export---导原创 2020-08-12 14:09:39 · 125 阅读 · 0 评论 -
defineProperty和Proxy、Reflect、Symbol
Object.defineProperty()get:一个给属性提供getter的方法,如果没有getter则为undefined。该方法返回值被用作属性值。默认为undefined。set:一个给属性提供setter的方法,如果没有setter则为undefined。该方法将接受唯一参数,并将该参数的新值分配给该属性。默认值为undefined。let obj = { _a:'', get a(){ // todo ... return this.原创 2020-08-12 12:57:06 · 287 阅读 · 0 评论 -
ES6常用方法
1、 … 扩展运算符(解构赋值)原创 2020-08-08 16:24:00 · 554 阅读 · 0 评论 -
浅拷贝和深拷贝
浅拷贝:只能拷贝第一层,如果是多层嵌套还是跟着原来数据改变深拷贝:拷贝出来的结果和以前没关系浅拷贝1、for···in只循环第一层// 只复制第一层的浅拷贝function simpleCopy(obj1) { var obj2 = Array.isArray(obj1) ? [] : {}; for (let i in obj1) { obj2[i] = obj1[i]; } return obj2;}var obj1 = { a: 1, b: 2,原创 2020-08-08 15:43:27 · 155 阅读 · 1 评论