
面试
Y丶小琪
这个作者很懒,什么都没留下…
展开
-
前端模块化总结
模块化的好处:避免命名冲突(减少命名空间污染)、更好的分离, 按需加载、更高复用性、高可维护性现在开发中最流行的有:CommonJS, AMD, ES6、CMDCommonJS规范主要用于服务端编程,加载模块是同步的,这并不适合在浏览器环境,因为同步意味着阻塞加载,浏览器资源是异步加载的,因此有了AMD CMD解决方案。AMD规范在浏览器环境中异步加载模块,而且可以并行加载多个模块。不过,AMD规范开发成本高,代码的阅读和书写比较困难,模块定义方式的语义不顺畅。CMD规范与AMD规范很相似,原创 2021-03-12 16:22:27 · 213 阅读 · 0 评论 -
高频面试手写代码练习3--bind
Function.prototype.myBind=function(context){ if(typeof this!=='function'){ throw new TypeError('error') } let args=[...arguments].slice(1) let fn=this return function Fn(){ //this instanceo..原创 2021-03-04 17:32:21 · 133 阅读 · 1 评论 -
高频面试手写代码练习2--深复制
普通方法:1.JSON.parse(JSON.stringify(obj)) //不能复制function、正则、Symbol 、循环引用报错(obj.test=obj)、相同的引用会被重复复制 2.lodash的方法 _.cloneDeep(obj) //常用 3.面试中经常会遇到手写实现深复制function isObject(obj) { return typeof obj === 'object' ...原创 2021-03-01 19:44:48 · 107 阅读 · 0 评论 -
高频面试手写代码练习1--防抖节流
防抖:如果短时间内大量触发同一事件,只会执行一次函数。--滚动页面resize事件,常见于需要做页面适配的时候。需要根据最终呈现的页面情况进行dom渲染(这种情形一般是使用防抖,因为只需要判断最后一次的变化情况)function debounce(fn,delay){ let timer=null let that=this return function(){ if(timer){ clearTimeout(timer) }原创 2021-02-25 16:33:56 · 135 阅读 · 0 评论