标签: 代码实现

客栈小K | 2022-11-29 | 代码实现前端相关

如何做前端单元测试

这是第 125 篇不掺水的原创,想获取更多原创好文,请搜索公众号关注我们吧 本文首发于政采云前端博客:[如何做前端单元测试](https://zoo.team/article/unit-testing) 如何做前端单元测试 对于现在的前端工程,一个标准完整的项目,通常情况单元测试是非常必要的。但很多时候我们只是完成了项目而忽略了项目测试。我认为其中一个很大的原因是很多人对单元测试认知不够,因此我写了这边文章,一方面期望通过这篇文章让你对单元测试有一个初步认识。另一个方面希望通过代码示例,让你掌握写单元测试实践能力。 前端为什么需要单元测试? ------------------------ 1. 必要性:JavaScript 缺少类型检查,编译期间无法

 1127 |  1 |  0 代码实现前端相关

客栈小K | 2022-11-04 | 浏览器代码实现前端相关

阿里面试官:如何给所有的async函数添加try/catch?

前言 ---- 三面的时候被问到了这个问题,当时思路虽然正确,可惜表述的不够清晰 后来花了一些时间整理了下思路,那么如何实现给所有的async函数添加try/catch呢? async如果不加 try/catch 会发生什么事? -------------------------------------- js // 示例 async function fn() { let value = await new Promise((resolve, reject) = { reject('failure'); }); console.log('do something...'); } fn() 导致浏览器报错:一个未捕获的错误 在开发过程中,为了保证系统健壮性,或者是为了捕获异步的错误,需要频繁的在 async 函数中添加 try/catch,避免出现上述示例的情况 可是我很懒,不想一个个加, 懒惰使

 586 |  1 |  0 浏览器代码实现

黑夜尽头 | 2022-03-15 | 代码实现前端相关

最全的手写JS面试题

这是我参与更文挑战的第 1 天,活动详情查看:[更文挑战](https://juejin.cn/post/6967194882926444557) 前言 本文整理了前端面试 高频 出现的手写源码相关的题目 其中有小编面试亲自遇到的也有其他同学帮忙补充的 整体采用 es6 语法 并且以简单易懂版进行实现 如果对答案有不一样见解的同学欢迎评论区补充讨论 虽然鲨鱼哥也很不喜欢内卷 但是在如今人人皆卷的大环境下 大家只有比别人更卷才能收获更好的未来 最后欢迎大家点击 [链接](https://juejin.cn/pin/6968285391736537102 "https://juejin.cn/pin/6968285391736537102") 加入到鲨鱼哥的前端群 内推 讨论技术 摸鱼 求助 皆可 整理不易 如果觉得本文有帮助 记得 点赞三连 哦 十分感谢! 1 compose 题目描述:实现一个 compose 函数 js // 用法如下: function fn1(x) { return x + 1; } fun

 1948 |  3 |  1 代码实现前端相关

黑夜尽头 | 2022-01-05 | JavaScript代码实现前端相关

详解leetcode146题【LRU (最近最少使用) 缓存机制】(附js最优解法!)

leetcode 146. [LRU (最近最少使用) 缓存机制](https://link.juejin.cn/?target=https%3A%2F%2Fleetcode-cn.com%2Fproblems%2Flru-cache%2F "https://leetcode-cn.com/problems/lru-cache/") 题目描述 js 运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。 获取数据 get(key) 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。 写入数据 put(key, value) 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数据之前删除最近最少使用的数据值,从而为新的数据值留出空间。 进阶: 你是否可以在 O(1) 时间复杂度内完成这两种操作? 示例: LRUCache cache = new LRUCache( 2 / 缓存容量 / ); cac

 563 |  0 |  0 JavaScript代码实现

FX | 2021-12-17 | JavaScript代码实现前端相关

实现一个 new 关键字

new 创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例 new 关键字的作用 1. 创建一个空的简单JavaScript对象 2. 为步骤1新创建的对象添加属性__proto__,将该属性链接至构造函数的原型对象 ; 3. 将步骤1新创建的对象作为this的上下文 ; 4. 如果该函数没有返回对象,则返回this。 实现一个 new js function _new (foo, ...args) { if (typeof foo ! 'function') { throw Error('foo is not a constructor') } // 创建空对象,并将新对象的__proto__属性指向构造函数的prototype const obj = Object.create(foo.protoType) // 执行构造函数,改变构造函数的this指针,指向新创建的对象 const result = foo.apply(obj, args) return typeof

 1017 |  2 |  0 JavaScript代码实现

黑夜尽头 | 2021-12-17 | JavaScript代码实现前端相关

【中高级前端】必备,30+高频手写实现及详细答案(万字长文),你值得拥有噢

本文已参与 [「掘力星计划」](https://juejin.cn/post/7012210233804079141 "https://juejin.cn/post/7012210233804079141") ,赢取创作大礼包,挑战创作激励金。 前言 -- 快排 、 冒泡 、 Promise 、 Promise.all 、 new ...你能都手写实现吗?从原理出发到底层实现,和胖头鱼一起学习这30+高级知识吧!!! [点击查看日拱一题源码地址(目前已有62+个手写题实现)](https://link.juejin.cn/?target=https%3A%2F%2Fgithub.com%2Fqianlongo%2Ffe-handwriting "https://github.com/qianlongo/fe-handwriting") 1\. 实现instanceOf的...

 831 |  0 |  0 JavaScript代码实现

黑夜尽头 | 2021-12-16 | JavaScript代码实现前端相关

因为实现不了Promise.all,一场面试凉凉了

前言 -- (ಥ﹏ಥ)曾经真实发生在一个朋友身上的真实事件,面试官让他手写一个 Promise.all ,朋友现场发挥不太好,没有写出来,事后他追问面试官给的模糊评价是 基础不够扎实,原理性知识掌握较少... 当然整场面试失利,并不仅仅是这一个题目,肯定还有其他方面的原因。 但是却给我们敲响一个警钟: Promise手写实现 、 Promise静态方法实现 早已经是面试中的高频考题,如果你对其还不甚了解,耽误你10分钟,我们一起 干到他懂 O(∩\_∩)O 常见面试手写系列 -------- 胖头鱼 最近很想做一件事情,希望可以将前端面试中 常见的手写题 写成一个系列,尝试将其中涉及到的知识和原理都讲清楚,如果你对这个系列也感兴趣,欢迎一起来学习噢,目前已有 66+手写题 实现啦! [1\. 点击查看日拱一题源码地址(目前已有66+个手写题实现)](https://link.juejin.cn/?target=https%3A%2F%2Fgithub.com%2Fqianlongo%2Ffe-handwriting "https://link.juejin....

 1093 |  0 |  0 JavaScript代码实现

渣渣辉 | 2021-10-28 | ES6代码实现前端相关

实现一个 Promises/A+ 规范的 Promise

这是一道有着成熟的业界规范的 coding 题,完成这道题的前置知识就是要了解什么[ Promises/A+](https://promisesaplus.com/) 这道题的难点就在于它是有规范的,任何一个不满足所有规范条件的解答都是错误的。同时,成熟的规范也配套了成熟的[测试用例](https://github.com/promises-aplus/promises-tests),官方提供了 872 个测试用例针对规范中的所有条件一一进行检测,哪怕只有一条失败,那也是错误的解答。 而这道题的答题关键也恰恰是因为它是有规范的,只要我们对于规范了然于胸,那么编写代码自然也是水到渠成。因为官方规范提供了一个符合 Promises/A+ 规范的 Promise 应该具有的全部条件,并且在 [Requirements](https://promisesaplus.com/ requirements) 一节中结构清晰、逻辑充分的表述了出来,我们只需将规范中的文字转变为代码,就能够实现一个 Promises/A+ 规范的 Promise。 编写代码 因为规范条例较多,我们拆解成...

 957 |  7 |  2 ES6代码实现

没有更多了