![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试
Heartbroken_man
工作两年多才想起写博客
展开
-
面试参考点:手写一个Object.create方法
Object.create()方法用于创建一个新对象,使用现有的对象来作为新创建对象的原型(prototype)。所以可以使用Object.create()来实现类式继承原创 2023-04-28 02:57:33 · 128 阅读 · 0 评论 -
面试常考题:手写一个数组reduce方法
js手写一个数组reduce方法原创 2023-04-26 03:03:58 · 167 阅读 · 0 评论 -
面试常考点:手写一个JSON.stringify和JSON.parse
js手写JSON.stringify和JSON.parse的实现原创 2023-04-25 21:18:26 · 145 阅读 · 0 评论 -
js算法题:商品sku多规格组合
题目:const arr =[['A','B'],['a','b'],[1,2]] 求二维数组的全排列组合 结果:Aa1,Aa2,Ab1,Ab2,Ba1,Ba2,Bb1,Bb2原创 2023-04-23 03:29:42 · 498 阅读 · 1 评论 -
面试常考点:手写一个简易版的Promise
要实现一个promise首先我们要知道以下几点:1、对象的状态不受外界影响。Promise 对象代表一个异步操作,有三种状态:pending: 初始状态,不是成功或失败状态。 fulfilled: 意味着操作成功完成。 rejected: 意味着操作失败。只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态2、一旦状态改变,就不会再变,任何时候都可以得到这个结果。Promise 对象的状态改变,只有两种可能:从 Pending 变为 Resolved 和从 Pend原创 2022-02-08 17:53:32 · 572 阅读 · 0 评论 -
面试常考点:手写实现一个instanceof
首先来看几个例子console.log("111" instanceof Object); //falseconsole.log({} instanceof Object); //trueconsole.log([] instanceof Array); //trueconsole.log(String instanceof String); //falseinstanceof 的原理:其实就是判断左边的对象是否在右边对象的原型链上也就是说:left.__proto__ === right.原创 2022-02-08 15:58:13 · 550 阅读 · 0 评论 -
面试常考点:模拟new实例化
先来这么一段代码function Preson(name, age) { this.name = name; this.age = age; this.say = function () { console.log("我叫:" + this.name, "今年:" + this.age + "岁了!"); };}let p = new Preson("朱莉", 19);console.log("p", p);定义一个p去接收实例化出来的结果,可以看到p上面有三个原创 2022-02-08 15:00:49 · 376 阅读 · 0 评论 -
面试常考点:手写一个call和apply
面试的时候call和apply是经常被问到的点,它们可以用来改变函数的this指向,那么是怎么实现的呢?首先我们定义一个需要用到的实例代码const name = 45456;const obj = { name: 111, fn: function (param1, param2) { console.log(this.name, param1, param2); },};我们调用自带的call方法obj.fn.call(null, 2, n原创 2022-02-07 17:16:11 · 364 阅读 · 0 评论 -
面试常考点:实现一个深拷贝
思路:由于引用类型复制的时候通常是拷贝内存地址,也就是浅拷贝,所以深拷贝是重点为了处理引用类型的复制,,主要是数组和对象的时候,需要重新开辟内存。首先定义一下类型校验工具类:目前只需要校验 数组和对象function checkType(type) { return function (value) { return Object.prototype.toString.call(value).slice(8, -1).toLocaleUpperCase() === type原创 2022-01-05 19:17:51 · 479 阅读 · 0 评论 -
面试常考点:定义一个通用校验类型的函数
这里我们采用:Object.prototype.toString.call() 获取类型话不多说上代码:function checkType(type) { return function (value) { return Object.prototype.toString.call(value).slice(8, -1).toLocaleUpperCase() === type.toLocaleUpperCase(); }}var isNumber = c原创 2022-01-05 15:21:11 · 182 阅读 · 0 评论 -
面试常考点: 实现一个bind
分析:bind函数目的是改变this指向,返回一个新的函数假如我们有这么两个Object对象const obj = { name: 'obj' }const module = { name: 'module', getName: function (param, param2) { console.log(param, param2) return this.name原创 2022-01-05 12:51:01 · 381 阅读 · 0 评论 -
面试常考点:防抖与节流
防抖(debounce):某段时间内不管触发多少次,都会重新计算执行时间,只执行最后一次函数。防抖的使用场景:1.输入框事件:输入后需要不断发送请求匹配模糊搜索的内容,可以使用防抖减少请求次数2.浏览器懒加载图片:滚动条不断下拉的触发onscroll事件,可以使用防抖就行优化减少onscroll事件代码实现:// 防抖是只执行最后一次 function debounce(fn, wait) { let argThis = this;原创 2021-11-15 16:06:35 · 789 阅读 · 0 评论