javascript
欲语含羞
这个作者很懒,什么都没留下…
展开
-
宏任务和微任务关于异常的处理
var p = new Promise((resolve)=>{ console.log(1) resolve();})setTimeout(()=>{ console.log(2); },0);p.then(()=>{ console.log(3);}).then(()=>{ console.log(4); })console.log(5);// 结果//1 5 3 4 2var p = new Promise((原创 2020-05-25 20:14:55 · 382 阅读 · 0 评论 -
限制promise的并发数
参照文章指路→js如何限制Promise“并发”的数量思路利用一个队列保存超出数量限制待执行的任务利用Promise的finally方法取出队列中下一个任务执行代码// Promise.prototype.finally = function(callback){// return this.then(// (value)=>Promise.resolve(callback()).then(()=>value),// (reason.原创 2020-05-25 17:40:37 · 2022 阅读 · 0 评论 -
自己实现Promise
自己实现了Promise和requestclass MyPromise{ constructor(fun){ if(typeof fun !== 'function'){ throw new Error('need function!'); } this.state = 'PENDING'; this...原创 2020-04-28 23:58:13 · 430 阅读 · 0 评论 -
滚动到页面指定元素
滚动到页面指定元素// h5function scrollToElement(elementId,speed){ let destEle = document.getElementById(elementId); let scrolltopTemp = document.documentElement.scrollTop || document.body.scrollTop; ...原创 2020-04-28 13:27:58 · 467 阅读 · 0 评论 -
markdown目录锚点遍历实现
目录具体实现使用的antd代码主要是把markdown文件中的标题取出来,按照层级关系遍历,转化成antd中Anchor的实现形式比如,markdown文件中标题是一下形式<a id="1" style="position: relative;top: -120px;">1</a><a id="2" style="position: relative;top:...原创 2020-04-07 19:42:11 · 911 阅读 · 0 评论 -
移动端列表项曝光计算
从这里学习哒列表页曝光埋点实现/** * 曝光计算 * @param comp 组件实例用来传发埋点记录的数据 * @param headHeight 页面原始头部高度 * @param stickyHeadHeight 页面上滑后吸顶部分+头部的高度 * @param rowHeight 每个列表项的高度 */export function scrollShowLog(com...原创 2020-03-30 11:28:23 · 254 阅读 · 0 评论 -
一个JS立即执行函数和delete的坑(网易前端笔试)
今天网易笔试的坑(╥╯^╰╥) 上一碟小菜var a=1;(function a(){ console.log(1,a); var a=2; console.log(2,a); delete a; console.log(3,a);})();console.log(a);//1 undefined 闭包形成块级作用域,由于变量提升,此时a已存...原创 2018-09-18 11:40:56 · 806 阅读 · 0 评论 -
let const var作用域的坑
function a(){ var a=2; if(a>1){ const b=3; } console.log(b)}a();//var 3 变量提升//const Uncaught ReferenceError: b is not defined//let Uncaught ReferenceError: b is not def...原创 2018-09-15 14:06:03 · 211 阅读 · 0 评论 -
两个有序链表合并成一个有序链表
为神马面试的时候撕不出来??!!!o(╥﹏╥)o思路:取两个链表的第一个数比较,小的那个添加到新链表,然后指针向后移动,第二个数再与另一个链表的第一个数比较,以此类推。。。就是那个链表中的数被添加到新链表中,那个链表的指针就向后移动 /*数据结构 { value:1, next:{...} } */ //合并函数 function merge(p1,p2){ let ne...原创 2018-09-21 17:23:51 · 1004 阅读 · 0 评论