![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
es6
文章平均质量分 70
无声的code
指尖下的代码,头顶上的星空
展开
-
promise的内部实现原理及常见问题
优点 1.Promise 是一种封装和组合未来值得易于复用机制,实现关注点分离、异步流程控制、异常冒泡、串行/并行控制等 2.Promise会做出正确延时或异步操作,会解决callback处理异步回调可能产生的调用过早,调用过晚、调用次数过多过少、吞掉可能出现的错误或异常问题等,只接受首次 resolve(…)或 reject(…) 决议,本身状态转变后不会再变,所有通过 then(…) 注册的回调总是依次异步调用,所有异常总会被捕获抛出 then 回调异步执行 1)Promise 实例化时传入的函数会立即原创 2021-06-16 13:52:20 · 252 阅读 · 0 评论 -
eventBus实现源码
class EventBus{ constructor(){ this.event=Object.create(null); }; //注册事件 on(name,fn){ if(!this.event[name]){ //一个事件可能有多个监听者 this.event[name]=[]; }; ...原创 2020-11-19 14:48:53 · 105 阅读 · 0 评论 -
nexttick的实现方式
1.先判断Promise 2.在判断MutationObserver 3.在判断setImmediate 4.最后setTimeout 如果以上都不支持就只能用setTimeout来完成异步执行了 延迟调用优先级如下:Promise > MutationObserver > setImmediate > setTimeout 每次event loop的最后,会有一个UI render,也就是更新DOM 只要让nextTick里的代码放在UI render步骤后面执行,就能访问到更新后的DO原创 2020-11-19 14:35:43 · 481 阅读 · 0 评论 -
es6 class实现方法
//转义前 class Parent{ constructor(name,age){ this.name = name this.age = age } //类公有方法 sayName(){ console.log(this.name) } //静态方法 static sayhi(){ console.log(this.name) } } //经过babel官网转义后 var Parent = .原创 2020-11-19 14:17:19 · 331 阅读 · 0 评论 -
彻底消除if else,让你的代码看起来更优雅
场景一: 根据status显示对应名称 const statusStr = { '1': '待付款', '2': '待发货', '3': '已发货', '4': '交易完成', '5': '交易关闭', 'default': '', } const getStatus = (status) =>{ return statusStr[status] || statusStr['default'] } 优化方案原创 2020-10-13 09:33:52 · 200 阅读 · 0 评论 -
js数据类型
js的数据类型的转换 在 JS 中类型转换只有三种情况,分别是: 1.转换为布尔值 2.转换为数字(调用Number,parseInt()和parseFloat()) 3.转换为字符串(调用toString()或者String()方法) JS中数据类型的判断(typeof,instanceof,constructor,Object.prototype.toString.call()) ...原创 2020-06-30 09:32:05 · 77 阅读 · 0 评论 -
ES6常用单容易被忽略的方法
1.has (1)has方法用来拦截HasProperty操作(注意不是HasOwnProperty,即has方法不判断一个属性是对象自身的属性,还是继承的属性。),即判断对象是否具有某个属性时,这个方法会生效。典型的操作就是in运算符。可以接受两个参数,分别是目标对象、需查询的属性名。 (2)用于隐藏某些属性 // 隐藏_开头的属性 var handler = { has (target, key) { if (key[0] === '_') { return false;原创 2020-06-28 17:08:29 · 556 阅读 · 0 评论 -
JavaScript之Array 中every,some,map,filter, reduce
1.every和some every表示数组中的每一项都必须通过才会返回true some表示只要数组元素某一项满足即可 var arr = [1, 2, 3, 4, 5, 6, 7,8, 9]; var a = arr.every(item=> item > 6); console.log(a); // false var b = arr.some(item=> item &...原创 2020-03-27 14:35:01 · 220 阅读 · 0 评论