Promise必备知识汇总和面试情况 (mp.weixin.qq.com)

【简介】

Javascript异步编程先后经历了四个阶段,分别是Callback阶段,Promise阶段,Generator阶段和Async/Await阶段。Callback很快就被发现存在回调地狱和控制权问题,Promise就是在这个时间出现,用以解决这些问题,Promise并非一个新事务,而是按照一个规范实现的类,这个规范有很多,如 Promise/A,Promise/B,Promise/D以及 Promise/A 的升级版 Promise/A+,最终 ES6 中采用了 Promise/A+ 规范。后来出现的Generator函数以及Async函数也是以Promise为基础的进一步封装,可见Promise在异步编程中的重要性。

点击查看全文 >>

@code小生 2022-05-08 23:44分享 / 0个评论
赞过的人: IT技术博客大学习 code小生
要不要再学学下面的文章?
人手必备的常用网络命令合集,吐血整理! (mp.weixin.qq.com)
ping是个使用频率极高的实用程序,主要用于确定网络的连通性。这对确定网络是否正确连接,以及网络连接的状况十分有用。简单的说,ping就是一个测试程序,如果ping运行正确,大体上就可以排除网络访问层、网卡、Modem的输入输出线路、电缆和路由器等存在的故障,从而缩小问题的范围。
by @code小生 2022-04-10 21:12 分享 查看详情
在GitHub上提交代码必备指南! (mp.weixin.qq.com)
将拉取请求(Pull Request,即 PR)控制在很小是一门艺术。在编写代码的时候,你经常会有重写、重构代码或整理代码的格式的冲动,但总的来说,优秀的开发人员会抵制一次性修改所有内容的诱惑。他们会集中一个目标,并将需要更改的代码量降到最低。有些人甚至会相互比较“删除的代码行数”与“增加的代码行数”比率。如果你需要重构和优化代码,那么请分别进行。不要找借口将所有改动都塞到一个 PR 中,这是懒惰。
by @code小生 2022-02-08 23:30 分享 查看详情
从面试官角度看一次前端面试经历 (mp.weixin.qq.com)
今天被抓到给候选者进行初面。在这里记录一下面试中涉及的几个知识点。
每次面试我都会递给候选者一瓶水,这样可以让候选者没那么紧张,有更好的状态进行面试,毕竟面试是双向选择,公司也需要尽快找到合适的人,没那么多网上说的心理战。
by @code小生 2022-01-27 19:54 分享 查看详情
API面试四连杀:接口如何设计?安全如何保证?签名如何实现?防重如何实现? (mp.weixin.qq.com)
下面我们就来讨论下常用的一些API设计的安全方法,可能不一定是最好的,有更牛逼的实现方式,但是这篇是我自己的经验分享.
by @code小生 2022-01-16 11:01 分享 查看详情
69道HTML面试知识点总结 (mp.weixin.qq.com)
IE5.5 引入了文档模式的概念,而这个概念是通过使用文档类型(DOCTYPE)切换实现的。

<!DOCTYPE>声明位于 HTML 文档中的第一行,处于 <html> 标签之前。告知浏览器的解析器用什么文档标准解析这个文档。

DOCTYPE 不存在或格式不正确会导致文档以兼容模式呈现。
by @code小生 2021-12-19 19:44 分享 查看详情
程序员必备的10大GitHub仓库 (mp.weixin.qq.com)
GitHub 不仅是维护代码的好工具,而且是学习和成长的好工具。身为一个软件开发者,我一直在寻找有用的 GitHub 仓库,从中学习和发现灵感。以下是我最喜欢的 10 个仓库。
by @code小生 2021-10-07 13:35 分享 查看详情
记一次在梦里的大厂面试情景 (mp.weixin.qq.com)
昨晚做了一个梦,梦见自己到了一家大厂面试,面试官走近房间,坐了下来:是杨溜溜吧?国际惯例,先来个自我介绍吧。
于是我巴拉巴拉开始了长达两分钟的自我介绍,与此同时,面试官边听边看我的简历,边看边皱眉,结束后问:看你之前的项目经常用到Vue,对Vue熟悉吗?
by @code小生 2021-09-26 21:21 分享 查看详情
15个常见的Node.js面试问题及答案 (mp.weixin.qq.com)
帮助 Node.js 开发人员更好的面试,我列出了 15 个常见的 Node.js 和网络开发相关的面试问题。
by @code小生 2021-08-09 00:15 分享 查看详情
收藏!Echarts数据可视化开发中的一些技巧和常见问题汇总 (mp.weixin.qq.com)
在做数据可视化开发过程中,一般使用较多的就是 Echarts 图标库了,完全免费,代码开源,且上手快,文档和示例都比较全面,接下来就分享一些 Echarts 图标库的一些使用技巧和对常见问题进行汇总。
by @code小生 2021-08-01 18:59 分享 查看详情
给 JavaScript 插上多线程的翅膀 —— Web Worker 的 Promise 化实践 (www.alloyteam.com)
众所周知,JavaScript 这门语言的一大特点就是单线程,即同一时间只能同步处理一件事情,这也是这门语言衍生出的 nodeJS 被各后端大佬诟病的很重要的一点。


然而,JavaScript 在设计之初,其实是故意被设计成单线程语言的,这是由于它当时的主要用途决定的。

JavaScript 最初的设计初衷是完成页面与用户的交互,操作 DOM 或者 BOM 元素,此时如果一味地追求效率使用多线程的话,会带来资源抢占,数据同步等等问题,因此必须规定,同一时间只有一个线程能直接操作页面元素,以保证系统的稳定性以及安全性。

尽管如此,但是 JavaScript 并不是只能线性处理任务。JS 拥有消息队列和事件循环机制,通过异步处理消息的能力来实现并发。在高 I/O 型并发事务处理的过程中,由于不需要手动生成与销毁线程以及占用额外管理线程的空间,性能表现及为优异。因此,nodeJS 作为 JavaScript 在服务端的探索者,在处理高并发网络请求的优势极为明显。

尽管 JavaScript 通过异步机制完美解决了高 I/O 性能的问题,但 JavaScript 单线程执行的本质还是没有变的。因此缺点就显而易见了,那就是处理 CPU 密集型的事务时没有办法充分调动现代多核心多线程机器的运算资源。

在现代大型前端项目中,随着代码的复杂程度越来越高,本地的计算型事务也在变得繁重,而运行在单线程下 JS 项目必定会忙于处理计算而无暇顾及用户接下来的频繁操作,造成卡顿等不太好的用户体验,更严重的情况是,当计算型事务过多时还有可能因为资源被占满带来网页无响应的卡死现象。因此,Web 项目的本地多线程运算能力势在必行,由此,Web Worker 应运而生了。
by @技术头条 2021-05-28 08:27 分享 查看详情