20190914 前端开发日报

快速理解javascript解析流程;NodeJs 内存泄漏案例分析;包教包会,和你实现一个Promise(一);JavaScript变量提升运行机制;9道JavaScript字符串类面试题;原生JS数组sort()排序方法内部原理探究;JavaScript实现flatten多种方法;Vue 3.0 之前你必须知道的 TypeScript 实战技巧

  1. 快速理解javascript解析流程 a = undefined console.log(a); // undefined a = 10; 复制代码 执行结果是 undefined 这个过程叫变量提升。解析时遇到var 就会提升上去但并没有赋值。 2. 变形 console.log(b); console.log(c); function b() { console.log("b"); } var c = function() …
  2. NodeJs 内存泄漏案例分析 NodeJs 内存泄漏案例分析 背景 组内的一个对外接口聚合项目,出现内存持续升高现象, 定位为程序出现内存泄漏问题。 分析过程 程序在内存泄漏期间,截取的几个内存快照 以下是我的分析过程 为了 独立性,这次我分析的是 izayoi-00001 机器上的两个快照 分析两个快照中的内存组成结构: 发现 …
  3. 包教包会,和你实现一个Promise(一) 大约从半年前开始,就想试着写一个符合规范的Promise,但是一直写不出来,期间也看了不少Promise的文章,但是通常看了一点就看不懂了。最近几天,又仔仔细细地研究了一遍并查阅了很多文章,终于彻底整明白了Promise了。之所以要写这个小系列文章,是因为我觉得网上大部分写Promise实现的文章都有点深,以前我看的时候就…
  4. JavaScript变量提升运行机制 JavaScript的工作原理是,先解析代码,获取所有声明的变量或者函数,然后运行。这造成的结果就是所有声明的变量或者函数都被提升到代码的头部,这叫做声明提示提升。 先看一个换汤不换药的经典例子:这个例子大家其实都知道发生了变量提升导致 ;结果是undefined。问题来了,这个提升的过程在哪里发送?怎么发生? …
  5. 9道JavaScript字符串类面试题本文来源于笔者的开源项目前端面试与进阶指南 点击关注本公众号获取文档最新更新,并可以领取配套于本指南的 《前端面试手册》 以及最标准的简历模板. 解析 URL Params 为对象 {代码…} {代码…} 模板引擎实现 {…
  6. 原生JS数组sort()排序方法内部原理探究 此时排序的方式是按照ascii码进行排序,它会先将数组里的元素全部转为字符串(不影响原值),方便比较。 let arr = arr.sort() //此时原数组已经被改变 console.log(arr) 复制代码 打印结果 有参数时的使用 先看一下w3school所给的定义 这TM讲的…
  7. JavaScript实现flatten多种方法 我们在网上看到很多的关于数组的面试题,比如说给如下一个数组,把它 拍平、去重、升序 : let arr = , 1, 3, ], 4, 3, 2, 4]; 复制代码 其实这个题有很多种解法,比如用 Array.prototype.flat ,或者自己实现一个 flatten 函数,我们这里主要关注的时 flat 方法的实现。 …
  8. Vue 3.0 之前你必须知道的 TypeScript 实战技巧 很多人对TypeScript的使用还停留在基本操作上,其实TypeScript的特性非常强大,我们利用好这些特性可以有效地提高代码质量、加速开发效率,今天就介绍9个非常实用的TypeScript技巧或者特性. 注释的妙用 我们可以通过/** */来注释TypeScript的类型,当我们在使用相关类型的时候就会有注释的提示,这个技…
  9. 面向 JavaScript 程序员的 Python 教程 本文翻译自: Python for JavaScript Developers ,作者:Mario Pabon。 最近我加入了一家小创业公司Underdog.io,在纽约。我发现这里的后端项目使用了 python,一个我之前没有怎么接触过的语言。 虽然在这里我的主要职责在 JavaScript 和 React 方面的工作。但是我们是个小团队,为了能实现一个功能,我必须经常…
  10. HTTP 状态码详解大全 以下是HTTP 状态码详解大全 | HTTP Status Codes” ,来自维基百科,可以按Ctrl+F快速查找需要的信息 1xx消息 这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。由于HTTP/1.0协议中没有定义任何1xx状态码,所以除非在某…
  11. 终于实现滑动拼图验证码,vue 缘由:之前看哔哩哔哩官网登录的时候有一个拼图验证码,很好奇怎么去实现。然后就想着自己弄一个。先给大家看我的最终效果。后面再一点点拆解代码。 为什么想着写这个功能呢,主要在于拼图验证码在前端这里会比较复杂并且深入。相比文字拼写,12306的图片验证码都没有拼图验证码对前端的要求来的复杂,和难。 …
  12. webpack4平滑升级 最近有感觉到,随着系统模块数量的增加, wepack 编译打包的速度越来越慢,于是我想给项目做一下优化升级,也借此机会系统地学习一下 webpack4 。 升级过程 当前版本 "dependencies": { "@fullcalendar/core": "^4.2.0", "@fullcalendar/daygrid": "^4.2.0…
  13. 前端JS内存管理像C语言这样的底层语言一般都有底层的内存管理接口,比如 malloc()和free()。相反,JavaScript是在创建变量(对象,字符串等)时自动进行了分配内存,并且在不使用它们时“自动”释放。 释放的过程称为垃圾回收。这…
  14. JSI小试牛刀——Native同步调用JS代码 上一篇有说到在有了JSI之后,JS和Native同时持有一个HostObject,那么JS和Native之间就有了同步调用的基础条件。 JS同步调用Native 实际上,在现在的RN(以0.59版本为例)中,已经实现了JS向Native代码的同步调用,在iOS中,可以通过宏 RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD 来实现。 @implementation Confi…
  15. 25个JavaScript代码简写技巧(下篇)14. 多行字符串 如果您发现自己需要在代码中编写多行字符串,那么您可以编写它: 常规: 但是有一种更简单的方法。只需使用反引号。 简写: 15. 展开(spread)操作符 ES6中引入的展开运算符有几个用例,可以使Java…
  16. JavaScript数据结构 – 栈 如果你问我,人能否改变自己的命运,我也不晓得。但我晓得,不认命,就是我们这代人的命。 基础知识就像是一座大楼的地基,它决定了我们的技术高度。 我们应该多掌握一些可移值的技术或者再过十几年应该都不会过时的技术,数据结构与算法就是其中之一。 正文 栈的使用遍布程序语言实现的方方面面,从表达式求…
  17. 重学js之JavaScript 面向对象的程序设计(创建对象) 面向对象的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象。但是,再前面提到过。ES中没有类的概念,因此它的对象也与基于类的语言中的对象有所不同。 对象的定义:‘无序属性的集合,其属性可以包含基本值、对象或者函数。’ 严格来讲,这就相当于说对象是一组没有特定顺序…
  18. JS异常函数之-箭头函数为了回馈读者,《大迁世界》不定期举行(每个月一到三次),现金抽奖活动,保底200,外加用户赞赏,希望你能成为大迁世界的小锦鲤,快来试试吧
  19. JavaScript和TypeScript中的void如果你来自传统的强类型语言,可能会很熟悉 void 的概念:一种类型,告诉你函数和方法在调用时不返回任何内容。
  20. 前端兼职(效率高、有责任心)擅长技术:Vue、React、Uniapp、小程序开发、公众号开发、后台管理系统开发、Nodejs、Java5年多工作经验联系方式微信:wangzehu12
  21. 实现一个web端的word模板导入及数据渲染导出 在工作中遇到一个需求,需要用户自己创建一个word模板,然后上传到网页端再把我们的数据渲染word对应的地方并导出。 翻了半天github决定用以下技术实现: 用PizZip来实现数据的上传和打包 github.com/open-xml-te… 用Docxtemplater来实现对文档中的变量进行赋值和渲染 github.com/open-xml-te… 用Fil…
  22. Janus 项目作者 Lorenzo:如何在 Janus 中抓取 WebRTC 流量 本文是Janus 项目作者 Lorenzo Miniero撰写的, 2019 年 10 月 25 日他将来到北京 RTC 2019 大会,在「WebRTC Workshop」工作坊中分享WebRTC 服务端开发及 Janus 开发的技巧,并与听众小范围深入交流,名额有限,现在即可报名:2019.rtcexpo.org/(申请限时免费票,还可获得 Workshop 代金券~) 本文摘要:抓取Web…
  23. 前端进阶之路:事件循环机制 在切入正题之前呢,先说点题外话,最近准备面试,边投简历边刷面经,在刷面经的过程中 遇到频率很高的题目就是事件循环、闭包、原型链等等,当我们听到这些问题的时候,我感觉有90%多的人似懂非懂,也不知道该怎么描述,题主也是一顿百度,开始以为自己理解了,但是前几天的一道笔试题,有一次搞蒙了我,而百度上的文章…
  24. React 中的 9 种优化技术(框架篇) 谷歌的数据表明,一个有 10 条数据 0.4 秒可以加载完的页面,在变成 30 条数据加载时间为 0.9 秒后,流量和广告收入减少了 20%。当谷歌地图的首页文件大小从 100kb 减少到 70~80kb 时,流量在第一周涨了 10%,接下来的三周涨了 25%。 腾讯的前端工程师根据长期的数据监控也发现页面的一秒钟延迟会造成 9.4% 的…
  25. 突破前端反调试:阻止页面不断 debugger 不知道你们有没有遇到过上图这样,有时候想调试网站,一打开开发者工具立即 debugger ,而且跳过了还是会继续,或者是有时候在调试网页时,突然就给你来一个 debugger,接着就是反复来回 debugger 了,贼烦,那今天分享个教程,教大家如何跳过这个 debugger。 1. 问题重现 一次扒某网站的前端代码,打开控制…
  26. NodeJS实现登录注册功能(图文) 该Demo根据菜鸟教程的练手项目,请提前到菜鸟教程的官网查看nodejs的相关教程,根据教程实际操作一遍,然后自己动手去实现登录、注册功能,此Demo只作参考,不符合前端相关规范。 使用的技术栈 node+express+mongodb 项目目录结构 node_modules: 第三方模块目录 public: 公共文件目录(js、cs…

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

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


关注我

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

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

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