随笔分类 - Javascript
摘要:概述 编译与转译 编译(Compile):通常是 高级语言 → 机器码/字节码,比如 C → 汇编。 转译(Transpile):通常是 一种语言的源代码 → 另一种语言的源代码,保持抽象层级接近。 前端中常见的转译操作,如下: ES6 -> ES5 TS -> JS SASS -> CSS 代码转
阅读全文
摘要:今天我们来解决一个很多同学经常搞混的概念对:并发和并行。 这两个词在日常交流中常常被混用,但在编程领域,它们指的是完全不同的执行模式。理解它们的区别,不仅能帮你正确选型,还能在调优性能时少走弯路。 一个小问题 👉 一边刷手机一边等外卖,这算是并发还是并行? 如果你下意识觉得“反正就是同时干两件事”
阅读全文
摘要:Runner function: function run(genFn) { const it = genFn() let state = { done: false, value: undefined } step() function step(isError, arg) { try { sta
阅读全文
摘要:How vue-router solve the problem: function changeLocation( to: HistoryLocation, state: StateEntry, replace: boolean ): void { /** * if a base tag is p
阅读全文
摘要:history 是浏览器环境中所支持的一个对象,该对象用于管理当前创建最近访问过的 URL 历史记录,所有的 URL 会被存储在一个名为 histroy 的对象里面,回头就可以通过 JS 脚本调用 history 对象的方法从而控制浏览器前进或者后退。 例如打开浏览器,新创建一个标签页会话,然后在控
阅读全文
摘要:Overriding a function lets you wrap a third-party method with your own logic while still invoking its original behavior. Example code: const unmountAp
阅读全文
摘要:const template = "<p>Vue</p>"; const State = { initial: 1, // init state tagOpen: 2, tagName: 3, text: 4, tagEnd: 5, tagEndName: 6, }; function isAlph
阅读全文
摘要:从上到下按照规则比较,直到能得到确切结果为止: 两端类型相同,比较值 两端存在 NaN,返回 false undefined 和 null 只有与自身比较,或者互相比时,才会返回 true 两端都是原始类型,转换成数字比较 一端是原始类型,一端是对象类型,把对象转换成原始类型后进入第 1 步 对象如
阅读全文
摘要:For example when you open a overlay to play video, and you want to disable background page scrolling playBtn.onclick = function() { // ... video.play(
阅读全文
摘要:https://developer.mozilla.org/en-US/docs/Web/API/Encrypted_Media_Extensions_API 1. Video screenshot blocking when you render video through a DRM‐prote
阅读全文
摘要:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/try function fetchData() { if (Math.random() < 0.5) throw new
阅读全文
摘要:export const enum ShapeFlags { ELEMENT = 1, FUNCTIONAL_COMPONENT = 1 << 1, //2 STATEFUL_COMPONENT = 1 << 2, //4 TEXT_CHILDREN = 1 << 3, //8 ARRAY_CHIL
阅读全文
摘要:概述 JavaScript 中所有位运算都会先将操作数通过 ToInt32 转为 32 位有符号整数(补码),再按位进行计算。常用于标志位管理、快速取整、高效色彩处理等场景。 常见运算符 运算符 名称 说明 & 按位与 两位都为 1 时,结果为 1 | 按位或 任一位为 1 时,结果为 1 ^ 按位
阅读全文
摘要:We have new Arrayin Javascript const arr1 = new Array(3) // create an empty array with lengh 3 const arr2 = new Array(1,2,3) // create an array with v
阅读全文
摘要:const obj = { a: 1, b: 2, c: { d: 3 } } console.log(obj.toString()) // [object Object] Using Symbol.toStringTag const obj = { a: 1, b: 2, c: { d: 3 },
阅读全文
摘要:The key differences between CommonJS (CJS) and ECMAScript Modules (ESM) come down to their execution model. CommonJS (CJS) Synchronous: Each require()
阅读全文
摘要:AJAX 就是指在web应用程序中异步向服务器发送请求。 它的实现方式有两种,XMLHttpRequest 简称XHR和Fetch 以下是两者的对比 功能点 XHR Fetch 基本的请求能力 ✅ ✅ 基本的获取响应能力 ✅ ✅ 监控请求进度 ✅ ❌ 监控响应进度 ✅ ✅ Service Worke
阅读全文
摘要:我们已经将我们的代码开源到了 github 上面,但是如果是其他开发者想要使用我们的库,还需要去 github 上面手动下载下来,添加到他们的项目里面,这样是非常低效的一种方式。 npm 的出现解决了这个问题,npm 是前端领域非常出名的一个包的托管平台,提供了代码的托管和检索以及下载安装功能。 注
阅读全文
摘要:本小节我们先来介绍一下在设计开源库的时候有哪些原则以及最佳实践。 函数的设计 函数包含三要素: 函数名 参数 返回值 函数名 函数通常表示做一件事情,因此函数名一般为一个动词或者表示动作的短语,我们希望通过函数名就能够传达这个函数是做什么的。哪怕整个函数单词用得多一些,整个函数名长一些也无所谓,只要
阅读全文
摘要:In this lesson, you'll learn how to implement smooth state transitions in your web applications using the browser's built-in View Transitions API. We'
阅读全文