Arlo
Arlo
Repository (仓库地址) : [css-diff](https://github.com/samccone/css-diff) Gain (收获) : css-diff 是一个对比 css 差异的库,使用它可以对比两个 css 文件的差异。收获见以下源码解析~ ```css // a.css .a { font-size: 16px; color: #fff; } // b.css .a { font-size: 16px; color:...
# 前言 各位大佬好久不见啊~ 啊~好久没写文章了,惭愧惭愧。🐶 小 null 最近跑去写 Flutter 了 ~ Flutter 使用 Dart 语言进行开发,小 null 在写 Flutter 的过程中发现 Dart 和 Javascript/Typescript 有些相似之处~  本文分享上图中这些相似之处,希望能帮助到打算上车的你~ **You might already know Dart.** -...
## 什么是Promise ? > Promise是JS异步编程中的重要概念,异步抽象处理对象,是目前比较流行Javascript异步编程解决方案之一 ## Promises/A+ 规范 > 为实现者提供一个健全的、可互操作的 JavaScript promise 的开放标准。 ### 术语 - **解决 (fulfill)** : 指一个 promise 成功时进行的一系列操作,如状态的改变、回调的执行。虽然规范中用 fulfill 来表示解决,但在后世的 promise 实现多以 resolve 来指代之。 - **拒绝(reject)**...
## 1. Vue 响应式原理  ### 核心实现类: Observer : 它的作用是给对象的属性添加 getter 和 setter,用于依赖收集和派发更新 Dep : 用于收集当前响应式对象的依赖关系,每个响应式对象包括子对象都拥有一个 Dep 实例(里面 subs 是 Watcher 实例数组),当数据有变更时,会通过 dep.notify()通知各个 watcher。 Watcher : 观察者对象 , 实例分为渲染 watcher...
## 前言 移动互联网时代,用户对于网页的打开速度要求越来越高。百度用户体验部研究表明,页面放弃率和页面的打开时间关系如下图 所示。  根据百度用户体验部的研究结果来看,普通用户期望且能够接受的页面加载时间在 3 秒以内。若页面的加载时间过慢,用户就会失去耐心而选择离开。 首屏作为直面用户的第一屏,其重要性不言而喻。优化用户体验更是我们前端开发非常需要 focus 的东西之一。 本文我们通过 8 道面试题来聊聊浏览器渲染过程与性能优化。 我们首先带着这 8 个问题,来了解浏览器渲染过程,后面会给出题解~ 1. 为什么 Javascript 要是单线程的 ? 2. 为什么 JS 阻塞页面加载 ? 3. css 加载会造成阻塞吗...
## 1. ls 命令 : 显示目录内容列表 Linux ls 命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。 ```shell ls [-alrtAFR] [name...] ``` ### 常用 options - -a 显示所有文件及目录 (ls 内定将文件名或目录名称开头为"."的视为隐藏档,不会列出) - -A 同 -a ,但不列出 "." (目前目录) 及...
# 前言 > Chrome 开发者工具(简称 DevTools)是一套 Web 开发调试工具,内嵌于 Google Chrome 浏览器中。DevTools 使开发者更加深入的了解浏览器内部以及他们编写的应用。通过使用 DevTools,可以更加高效的定位页面布局问题,设置 JavaScript 断点并且更好的理解代码优化。 > 本文分享 24 个 Chrome 调试技巧和一些快捷键,希望能帮你进一步了解 Chrome DevTools ~ # 调试技巧 ## 1. 控制台中直接访问页面元素 在元素面板选择一个元素,然后在控制台输入`$0`,就会在控制台中得到刚才选中的元素。如果页面中已经包含了...
## 域名服务器 dns 模块 DNS(Domain Name System,域名系统),DNS 协议运行在 UDP 协议之上,使用端口号 53。DNS 是因特网上作为域名和 IP 地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的 IP 数串。简单的说,就是把域名(网址)解析成对应的 IP 地址。Node.js 的 dns 模块,提供了 DNS 解析功能。当使用 dns 模块中的 net.connect(80, 'github.com/webfansplz')方法 或 http 模块的...
## 缓冲器 Buffer 模块 在引入 TypedArray 之前,JavaScript 语言没有用于读取或操作二进制数据流的机制。 Buffer 类是作为 Node.js API 的一部分引入的,用于在 TCP 流、文件系统操作、以及其他上下文中与八位字节流进行交互。 ### 创建缓冲区 ```js console.log(Buffer.from([1, 2, 3, 4, 5])); // console.log(Buffer.from(new ArrayBuffer(8))); // console.log(Buffer.from("Hello world")); //...
## module 模块 > Node.js 实现了一个简单的模块加载系统。在 Node.js 中,文件和模块是一一对应的关系,可以理解为一个文件就是一个模块。其模块系统的实现主要依赖于全局对象 module,其中实现了 exports(导出)、require()(加载)等机制。 ### 1. 模块加载 Node.js 中一个文件就是一个模块。如,在 index.js 中加载同目录下的 circle.js: ```js // circle.js const PI = Math.PI exports.area = r => PI...