祝大佬能顺利通过面试。 我是来学***佬的面试题的...... 3.设计一个函数,能实现构造函数创建对象思路:模拟new的具体过程 function createObj(parent,...args){ if(typeof parent !== 'function') throw new TypeError('constructor is not a function.'); var obj = Object.create(parent.prototype); parent.apply(obj, args); return obj; } 4.设计一个栈,不使用数组。思路:链表实现,push、pop时间复杂度为O(1). function Stack(){ var Node = function(val,next){ this.val = val; this.next = next || null; } // 创建虚拟头结点 var dummyHead = new Node(-1); var size = 0; this.push = function(val){ var node = new Node(val, dummyHead.next); dummyHead.next = node; size++; } this.pop = function(){ if(!dummyHead.next) return undefined; var node = dummyHead.next; var val = node.val; dummyHead.next = node.next; size--; return val; } this.getSize = function(){ return size; } this.isEmpty = function(){ return size === 0; } } 16.防抖操作思路:防抖就将多次操作融合为一次操作 可以先延时,后执行(immediate=false) 也可以立即执行,然后延时(immediate=true) function debounce(func, wait, immediate){ let context,args,timer; let later = function(){ return setTimeout(() => { timer = null; if(!immediate){ func.apply(context, args); } }, wait); } return function(...params){ if(!timer){ timer = later(); if(immediate){ // 需要被立即执行 func.apply(this,params); }else{ context = this; args = params; } }else{ clearTimeout(timer); timer = later(); } } } 归并排序,有点复杂好像,不太会。ajax和fetch的区别,啥来着。。。
点赞 1

相关推荐

你背过凌晨4点的八股文么:简历挂了的话会是流程终止,像我一样
点赞 评论 收藏
分享
牛客网
牛客企业服务