20200329 前端开发日报

JS异步编程有哪些方案?为什么会出现这些方案?;一份来自亚马逊工程师的 Google 面试指南:GitHub 10w+ Star,中文版;如何取消 Fetch 请求;node.js创建aria2代理服务器:使用net.socket转发rpc或http request请求,替换websocket;Angular入门:简述单元测试排错;vue中避免使用函数来绑定依赖;[WebAssembly]浏览器内,javascript之外的速度;JavaScript深入之头疼的类型转换(上)

  1. JS异步编程有哪些方案?为什么会出现这些方案? 关于 JS 单线程、EventLoop 以及异步 I/O 这些底层的特性,我们之前做过了详细的拆解,不在赘述。在探究了底层机制之后,我们还需要对代码的组织方式有所理解,这是离我们最日常开发最接近的部分,异步代码的组织方式直接决定了开发和维护的效率,其重要性也不可小觑。尽管底层机制没变,但异步代码的组织方式却随着 ES …
  2. 一份来自亚马逊工程师的 Google 面试指南:GitHub 10w+ Star,中文版 晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 一位从1997年就入行的Web工程师,立志要成为Google软件工程师,3年前写下了一篇超完整学习和面试教程,以此作为自己的奋斗计划。 这位名叫John Washam的工程师,换了好几份工作,最后却阴差阳错在2017年成为了亚马逊AWS的技术专家。 …
  3. 如何取消 Fetch 请求JavaScript 的 promise一直是该语言的一大胜利——它们引发了异步编程的革命,极大地改善了 Web 性能。原生 promise 的一个缺点是,到目前为止,还没有可以取消 fetch 的真正方法。 JavaScript 规范中添加了新的 Ab…
  4. node.js创建aria2代理服务器:使用net.socket转发rpc或http request请求,替换websocket Aria2是一款免费开源跨平台且不限速的多线程下载软件,目前很多NAS用它来搭建下载服务器。 WebSocket连RPC Aria2 BT下载可通过网页端访问,网页站通过RPC与Aria程序通讯。 RPC(Remote Procedure Call)是远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。目前有很多…
  5. Angular入门:简述单元测试排错学习Angular的时候,总感觉特别的复杂、高级,以至于产生畏惧心理,这种心理尤其体现在单元测试上。
  6. vue中避免使用函数来绑定依赖 如果你正在使用vue编写业务,可能遇到一个数据比较多,他们都遵循相同的模式,需要在data里定义多个变量来绑定依赖,然后你不想在data里定义多个变量,在接口调回后每个都重新赋值,采用这种方式绑定依赖: <div v-if=’fuctionA(args)’> </div> <div v-for=’item in fuctionB()’ > <div v-if=’f…
  7. [WebAssembly]浏览器内,javascript之外的速度 经过这几天对Webassembly的学习,我觉得我的C语言功底已经达到了筑基期(大雾 2019年12月,随着W3C正式宣布,WebAssembly正式成为新标准,我对WebAssembly的学习随之展开。 WebAssembly,顾名思义,就是“网页”、“汇编”,即在网页跑汇编程序的能力。这个词,很早之前就已经传遍了前端圈子,无论是阮一峰老师的博客里热…
  8. JavaScript深入之头疼的类型转换(上)在 JavaScript 中,有一部分内容,情况复杂,容易出错,饱受争议但又应用广泛,这便是类型转换。
  9. 怎样避免Node.js模块的日志污染程序日志 每日前端夜话 第301篇 翻译: 疯狂的技术宅 作者:Corey Cleary 来源:coreycleary.me 正文共:2083  字 预计阅读时间:7 分钟 你是否有过这样的经历,当把 logging 添加到自定义 Node 模块中,并认为自己将会从这些额外信息中受益,却发现当你将模块添加为依赖项并运行 npm install 和 n…
  10. 关于JS括号匹配的面试题 之前在面试的过程中经常会遇到匹配括号的问题,比如下面这类题目: 编写一个函数,该函数接收一个算术表达式作为参数,返回括号缺失的位置。 2.3 + 23 / 12 + (3.14 * 0.24 复制代码 实现一个normalize函数,能将特定的字符串转化为特定的结构化数据。 ]] // 转化为 { value: ‘a’, childre…
  11. webpack-学习篇现在webpack已经是主流了,我现在学习它比较晚了,但是我不想更晚,最好的学习时间就是现在。你想学习也可以使用我的记录,里面我都写了详细的注释。
  12. GitHub上的Vue项目下载下来报错踩坑 前言:最近我因为要接手一个后台管理系统的项目,我在百度上面找的了这个项目模板,然后我把项目解压后,利用npm run dev的命令来运行项目,结果报错了,我试了一上午还是没有试出什么花样来,然后就看下面的步骤吧。 1.当我们npm run dev运行项目的时候,项目会出现以下的错误 遇到这样的错误后,我们先不慌,先…
  13. Vue中 props 这些知识点,可以在来复习一下如果你一直在阅读有关”props”内容,你会发现我们可能也一直在使用它们(即使没有意识到),但也许你并不完全确定它们是什么。或者如何正确使用它们,并充分利用它们。
  14. 重学前端(二)-你真的了解你JS的对象吗? 开篇之初我们先抛出几个问题? 1、什么是面向对象? 2、function 是一个对象吗? 3、对象分为几类呢? 4、什么是原型对象? 6、构造函数到底是个什么玩意? 7、new到底干了一件什么事? 回想一下这个这些问题你心中是否已有答案呢?在接下来的内容中,我们逐一共同学习! 正篇 灵魂质问?…
  15. Vue源码探秘(六)(Virtual DOM) 引言 Virtual DOM (后文简称 vdom )的概念大规模的推广得益于 react 的出现, vdom 也是 react 框架比较重要的特性之一。相比较频繁的手动去操作 dom 而带来性能问题, vdom 很好的将 dom 做了一层映射关系,进而将在我们本需要直接进行 dom 的一系列操作,映射到了操作 vdom 。 让我们进入今天的文章。 …
  16. 【开源】Koa + GraphQL实战(Typescript版)前几天看了一篇文章 GraphQL 搭配 Koa 最佳入门实践,非常详细地讲述了koa集成graphql的实战, 但是是js的版本,而且因为是两年前的文章了,有的包现在也已经更新了使用方式。 所以心血来潮,基于原作者的版本更新…
  17. 搞定callback-hell(回调地狱)、promise与async await 关于callback-hell的实现 首先建立一文件夹,目录结构如下: 在files文件夹下建立三个json文件,代码分别如下: // a.json { "next": "b.json", "msg": "this is a" } //b.json { "next": "c.json", "msg": &q…
  18. 「吐血整理」再来一打Webpack面试题 从头发的浓密程度和干练的走路姿势我察觉到,面前坐着的这位面试官也是一把好手。 我像以往一样,准备花3分钟的时间进行自我介绍。 在此期间,我的目光被16寸的MacBook Pro所吸引,这次的自我介绍我做足了准备,很有信心征服面试官。 不出我所料,面试官被我引入了我擅长的领域。 ❝ 看来你对Webpack很熟悉,那我来…
  19. 13 个精选的 React JS 框架 如果你正在使用 React.js 或 React Native 创建用户界面,可以试一试本文推荐的这些框架。 React.js 和 React Native 是流行的用户界面(UI)开发平台,且都是开源技术。在 StackOverflow 的 2019 年开发人员调查中,它们在期望度和使用率方面都有很高的排名。React.js 是 Facebook 在 2011 年作为一个 JavaScript 库开…
  20. 前端拓扑图插件选型对比【持续更新】 1. jTopo 简介:jTopo(Javascript Topology library)是一款完全基于 HTML5 Canvas 的关系、拓扑图形化界面开发工具包。 背景:个人、国产 官网: http://www.jtopo.com/ 示例: https://github.com/winyuan/jtopo_topology 优点 免费 轻量 无明显性能问题 功能丰富…
  21. Flutter 插件开发 前言 使用Flutter进行应用开发时,为实现一些功能(比如WebView加载网页、实现视频控件等)我们会引入三方插件,这些插件我们都可以在https://pub.dartlang.org/flutter网站中进行查找,然后在flutter工程中配置pubspec.yaml文件来引入。那么,如果我们需要实现的功能对应的插件在该网站上没有怎么办呢,这时候…
  22. Vue命令式弹窗组件如何实现?我很好奇 想必大家都用一些前端框架中诸如MessaBox或者Toast的组件,此类组件往往不需要我们显式的在使用组件的位置编写布局代码就能展示全局的弹框类组件。 this.$message.show(title,content); 复制代码 你有没有好奇这个效果是怎么实现的呢,接下来我们就来实现一下类似的Loading加载中效果。 实现思路 …
  23. 聊一聊 webpack 的打包优化实践 去年接触了公司内一个开发运行了两年多的项目,整体应用是基于 React 技术栈的,多个单页应用有构成了多页应用。可以理解为比较独立的子业务之间是 MPA 形式跳转,而子业务内部则是 SPA 形式。 项目的构建使用了 webpack,发现存在较大问题: 在生产环境上线编译大致需要 13 min+; 本地开发环境下,代码改动…
  24. 菜鸟的前端经历小结   18年12月份参加实习,团队比较年轻,技术栈基本只有Vue,我主要参与一些管理后台、H5活动页的开发和迭代,刚步入工作,其实大部分时间还是在学习中。   3月份决定换岗位到服务组,因为觉得在不会有什么成长,感觉大部分人都处于无脑搬砖中,节奏也很繁忙。来到服务组,跟着一位同事大佬参与了一个全栈应用的开发,是…
  25. JavaScript中逗号运算符,鲜为人知的秘密 逗点算符可与一组表达式运算符相配合,产生显著作用,但是其使用方式的演变却使人混淆不清。 之所以出现这种情况,一部分原因在于逗号在JavaScript里面有很多其他的含义。 所以为了使人了然于心,参与逗号以下两种表达式时,逗号就是单纯的逗点算符:左手侧表达和右手侧表达式。 这些表达式也含有其他运算符、变量…
  26. JavaScript进阶之LHS和RHS查询 从头到尾负责整个JavaScript程序的 编译 及执行过程。 编译器 引擎的好朋友之一,负责语法分析及代码生成等脏活累活(详见前一节的内容)。 作用域 引擎的另一位好朋友,负责收集并维护由所有声明的标识符(变量)组成的一系列查询,并实施一套非常严格的规则,确定当前执行的代码对这些标识符的访问权限。 …
  27. 174道 JavaScript 面试题,助你查漏补缺(5万字吐血整理,请收好)最近在整理 JavaScript 的时候发现遇到了很多面试中常见的面试题,本部分主要是作者在 Github 等各大论坛收录的 JavaScript 相关知识和一些相关面试题时所做的笔记,分享这份总结给大家,对大家对 JavaScript 的…
  28. 实现JavaScript优秀实践——注意应避开使用的旧结构 与任何其他编程语言一样,JavaScript也有自己的最佳实践列表,使程序更易于阅读和维护。 由于JavaScript有很多小陷阱,因此要注意避开。可以通过轻松地遵循一些最佳实践使JavaScript代码易于阅读。 本文会介绍需要避开的误区,例如声明全局变量、向setInterval和setTimeout传递字符串、使用with语句等。 避免声明全局…

关注github前端日报 订阅精彩文章

前端日报栏目数据来自码农头条,每日分享互联网上热门的前端开发、移动开发、设计、资源和资讯等,为开发者提供动力,如果觉得内容对你有用,记得分享给你的小伙伴。进入码农头条查看更多


关注我

我的微信公众号:前端开发博客,在后台回复以下关键字可以获取资源。

  • 回复「小抄」,领取Vue、JavaScript 和 WebComponent 小抄 PDF
  • 回复「Vue脑图」获取 Vue 相关脑图
  • 回复「思维图」获取 JavaScript 相关思维图
  • 回复「简历」获取简历制作建议
  • 回复「简历模板」获取精选的简历模板
  • 回复「加群」进入500人前端精英群
  • 回复「电子书」下载我整理的大量前端资源,含面试、Vue实战项目、CSS和JavaScript电子书等。
  • 回复「知识点」下载高清JavaScript知识点图谱

每日分享有用的前端开发知识,加我微信:caibaojian89 交流