
JavaScript
文章平均质量分 86
栖息
看得见的是做作,看不见的是执着
展开
-
「万字进阶」深入浅出 Commonjs 和 Es Module
一 前言今天我们来深度分析一下Commonjs和Es Module,希望通过本文的学习,能够让大家彻底明白Commonjs和Es Module原理,能够一次性搞定面试中遇到的大部分有关Commonjs和Es Module的问题。老规矩我们带上疑问开始今天的分析????????????: 1 Commonjs 和 Es Module 有什么区别 ? 2 Commonjs 如何解决的循环引用问题 ? 3 既然有了exports,为何又出了module.exports? ...转载 2021-11-06 12:16:29 · 437 阅读 · 0 评论 -
一文带你了解如何排查内存泄漏导致的页面卡顿现象
不知道在座的各位有没有被问到过这样一个问题:如果页面卡顿,你觉得可能是什么原因造成的?有什么办法锁定原因并解决吗?这是一个非常宽泛而又有深度的问题,他涉及到很多的页面性能优化问题,我依稀还记得当初面试被问到这个问题时我是这么回答的: 先会检查是否是网络请求太多,导致数据返回较慢,可以适当做一些缓存 也有可能是某块资源的bundle太大,可以考虑拆分一下 然后排查一下js代码,是不是某处有过多循环导致占用主线程时间过长 浏览器某帧渲染的东西太多,导致的卡顿 在转载 2021-05-11 10:20:09 · 404 阅读 · 0 评论 -
帮你彻底搞懂 JS 中的 prototype、__proto__与constructor(图解)
1. 前言作为一名前端工程师,必须搞懂JS中的prototype、__proto__与constructor属性,相信很多初学者对这些属性存在许多困惑,容易把它们混淆,本文旨在帮助大家理清它们之间的关系并彻底搞懂它们。这里说明一点,__proto__属性的两边是各由两个下划线构成(这里为了方便大家看清,在两下划线之间加入了一个空格:_ _proto_ _,读作“dunder proto”,“double underscore proto”的缩写),实际上,该属性在ES标准定义中的名字应该是[[Proto转载 2021-05-11 10:12:47 · 252 阅读 · 0 评论 -
让我告诉你一些强无敌的 NPM 软件包
面对繁忙的日程安排与紧迫的工期限制,选择能够切实提升生产率的工具无疑至关重要。在这里,我整理出一份个人最喜欢的 NPM 软件包清单。为了便于浏览,我还对它们进行了分类,希望呈现出更加清晰的结构。当然,大家不必全数安装与学习。在大多数情况下,每个类别选择一款就足以解决生产需求。我只是想多提供一点替代方案,帮助每位读者朋友找到最适合自己的选项。闲言少叙,咱们马上开始!???? 实用工具Lodashlodash[1]是一套现代 JavaScript 实用程序库,提供模块化、性能与多种附加功能。转载 2021-05-11 10:09:15 · 233 阅读 · 0 评论 -
值得收藏!让你全面认识 Nginx
Nginx是开源、高性能、高可靠的Web和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热更新。性能是Nginx最重要的考量,其占用内存少、并发能力强、能支持高达 5w 个并发连接数,最重要的是,Nginx是免费的并可以商业化,配置使用也比较简单。Nginx 特点 高并发、高性能; 模块化架构使得它的扩展性非常好; 异步非阻塞的事件驱动模型这点和Node.js相...转载 2021-05-11 10:06:02 · 274 阅读 · 0 评论 -
配置React源码本地调试环境
1. 第一步,使用 create-react-app 脚手架创建项目npx create-react-app react-test2. 然后弹射 create-react-app 脚手架内部配置npm run eject3.克隆 react 官方源码 (在项目的根目录下进行克隆)git clone --branch v16.13.1 --depth=1 https://github.com/facebook/react.git src/react4.接着链接本地源码...转载 2021-04-13 14:08:01 · 1034 阅读 · 0 评论 -
一文彻底搞懂webpack devtool
为什么需要Source Map首先根据谷歌开发者文档的介绍,Source Map一般与下列类型的预处理器搭配使用:转译器(Babel) 编译器(TypeScript) Minifiers(UglifyJS)为什么呢?因为通常我们运行在浏览器中的代码是经过处理的,处理后的代码可能与开发时代码相差很远,这就导致开发调试和线上排错变得困难。这时Source Map就登场了,有了它浏览器就可以从转换后的代码直接定位到转换前的代码。在webpack中,可以通过devtool选项来配置Source Map转载 2021-03-31 00:10:03 · 4128 阅读 · 0 评论 -
H5页面在微信端的分享
微信分享,咋一看好像很复杂,实则非常简单。只需要调用微信官方出的微信jssdk,加上些许配置,就可以实现h5页面在微信上的分享,官方文档地址为:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115一、获取基本信息找到已有公众号的appid,根据这个appid和url向后端发起请求,拿到配置所需要的参数:t...转载 2018-09-10 19:22:38 · 686 阅读 · 0 评论 -
Promise实现原理(附源码)
本篇文章主要在于探究 Promise 的实现原理,带领大家一步一步实现一个 Promise , 不对其用法做说明,如果读者还对Promise的用法不了解,可以查看阮一峰老师的ES6 Promise教程。 接下来,带你一步一步实现一个 Promise 1. Promise 基本结构 new Promise((resolve, reject) => { set...转载 2018-09-17 17:43:36 · 689 阅读 · 0 评论 -
前端性能与异常上报
概述对于后台开发来说,记录日志是一种非常常见的开发习惯,通常我们会使用 try...catch代码块来主动捕获错误、对于每次接口调用,也会记录下每次接口调用的时间消耗,以便我们监控服务器接口性能,进行问题排查。刚进公司时,在进行 Node.js的接口开发时,我不太习惯每次排查问题都要通过跳板机登上服务器看日志,后来慢慢习惯了这种方式。举个例子:/*** 获取列表数据* @pa...转载 2018-09-17 15:23:05 · 1095 阅读 · 0 评论 -
video 标签沉浸式播放解决方案
“沉浸播放式”这个概念是我从Android开发里面的沉浸式引申过来的一个概念,沉浸式其实就是隐藏页面顶部的status bar和底部的navigation bar之后呈现出来的页面,一般用户很容易把沉浸式状态栏和透明化状态栏混为一谈,他们的区别如下:沉浸式状态栏透明化状态栏那么回到前端开发,让我们看一下如何让video标签呈现这种沉浸式的播放效果,平常我们使用video标签都是...转载 2018-09-16 17:13:56 · 1778 阅读 · 0 评论