随笔分类 - js
摘要:零、资料 LRU和LFU 缓存淘汰算法(javascript与go语言实现) 一、基本概念 LRU(Least Recently Used)和LFU(Least Frequently Used)是两种常见的缓存淘汰算法, 用于在缓存空间有限的情况下选择合适的缓存对象进行淘汰,以提高缓存的利用效率 L
阅读全文
摘要:零、资料 JavaScript 中的位运算和权限设计 javascript位运算技巧 巧用JS位运算 JavaScript位运算及其妙用 聊聊JavaScript中的二进制数 一、权限 在权限设计时,每一个基础权限单元都是二进制数形式,有且只有一位值是 1,其余全部是 0,即权限码是 2^n 。 所
阅读全文
摘要:零、参考资料 手把手一行一行代码教你“手写Promise“,完美通过 Promises/A+ 官方872个测试用例 手写实现 Promise 全部实例方法和静态方法,来看看 Promise.all、Promise.race 和 Promise.any 都是怎么实现的 JS/ES6 Promise 的
阅读全文
摘要:一、柯里化 - currying 柯里化的意思是将一个多元函数,转换成一个依次调用的单元函数,用表达式表示: f(a,b,c) → f(a)(b)(c) 核心代码实现: export function curry(fn) { let len = fn.length; // 收集目标函数的参数个数(总
阅读全文
摘要:零、参考资料 深入分析JavaScript模块循环引用 Module 的加载实现 从模块的循环加载看ESM与CJS 理解 amd, cmd, commonjs, esm, umd 模块化 一、早期的实践 - CommonJS 族 Node.js 提供了服务器端的 js 运行环境,因此也带来了一波服务
阅读全文
摘要:零、参考资料 1. SolidJS 是如何实现响应式的? 一、双剑之 createSignal 用法: // js const [value, setValue] = createSignal(1); // html-template <div>值:{ value() }</div> 从语法格式上来
阅读全文
摘要:零、参考资料 https://www.zhihu.com/question/27996269 https://blog.csdn.net/weixin_43865875/article/details/117732871 https://www.cnblogs.com/chunlanse2014/a
阅读全文
摘要:零、参考资料 《图解 + 实战》File、Blob、TypedArray、DataView JavaScript也有操作二进制的一天:聊ArrayBuffer和Blob 聊聊JS的二进制家族:Blob、ArrayBuffer和Buffer 一、定义 宏观:Blob - 表示一个不可变、原始数据的类文
阅读全文
摘要:参考文章 1. 从react hooks“闭包陷阱”切入,浅谈react hooks 2. 一文讲透 React Hooks 闭包陷阱 Hooks Hooks 是 react 自 16.8 引入的新特性,使得开发者在摆脱 class 定义组件的同时,也能够进行状态管理。这样,react 组件完全进入
阅读全文
摘要:参考文章 尾调用优化 - 阮一峰; 基本概念 一、尾调用 一个函数的最后一步是调用另一个函数,并返回。注意点是,返回的是一个函数的调用(执行)。 // 最简形式 function f(x){ return g(x); } // 变种 function f(x) { if (x > 0) return
阅读全文
摘要:一、业务场景 众所周知,在客户端中,表单是一个相当重要的内容。随着技术的发展,在提交表单数据的时候,某些表单验证环节会放在前端进行。因此,我们无可避免的要写一堆 if 来处理,同时大多数的时候,如果需要提醒某些错误信息时,需要加入 else 以及 else if 来控制,当然也可以使用 retrun
阅读全文
摘要:零、资料 1. 详解JS函数柯里化 ; 2. 函数式编的JS: curry ; 一、基础概念 维基百科上说道:柯里化,英语:Currying(果然是满满的英译中的既视感),是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。
阅读全文
摘要:零、序言 本篇是《你不知道的 javascript(上)》读书笔记。 v1 版本写得比较乱,传送门; 注意:如无特殊标注,本篇中的 this 指的是 es5 & 非严格模式下的 this。 一、总集 在 js 中, this 的值需要到函数的调用时才能明确,因此完全取决于函数的调用位置(执行 fn(
阅读全文
摘要:零、引言 本篇是关于 window.location (history/hash) 的尝试,算是为了学习各种 router 的基础吧。 参考资料: 1. url 中的 hash; 一、基础准备 基础的 index.html 页面。 <!DOCTYPE html> <html lang="en"> <
阅读全文
摘要:零、原链和资料 1.js设计模式 注: 代码均为简洁版,如需了解其他版本写法的优缺点,请移步原文章。 一、单体模式 其思想是在一定的作用域范围内保证一个特定类仅有一个实例,意味着当你第二次使用同一个类创建新对象时,应得到和第一次创建对象完全相同。 var Universe; (function(){
阅读全文
摘要:零、原文与资料 1. 手写 Promise; 2. 最简实现Promise,支持异步链式调用(20行) 一、Promise/A+ 规范 1.Promise存在三个状态:pending(等待态)、fulfilled(成功态)、rejected(失败态);2.pending为初始态,并可以转化为fulf
阅读全文
摘要:零、序言 参考资料:JavaScript常用八种继承方案; 注:1.此篇笔记是站在上述资料的肩膀上的一篇小结; 2.阅读之前建议温习一下 js 中的 prototype 和 constructor;(js - __proto__ 、 prototype和constructor) 一、原型链上的继承(
阅读全文
摘要:零.资料与前言 0x1 材料: 1.帮你彻底搞懂JS中的prototype、__proto__与constructor(图解) 0x2 前言 之前也尝试总结过 js 中的 __proto__ 、 prototype 以及原型链相关的资料(JS 中的原型 -- prototype、__proto__
阅读全文
摘要:零.序言 转载&参考: 1.JavaScript 设计模式系列 - 观察者模式 2.JavaScript 设计模式(六):观察者模式与发布订阅模式 一、观察者模式(observer) 概要: 观察者模式:定义了对象间一种一对多的依赖关系,当目标对象 Subject 的状态发生改变时,所有依赖它的对象
阅读全文
摘要:参考: JavaScript专题之深浅拷贝。 浅拷贝: 浅拷贝就是拷贝指向对象的指针,因此,如果其中一个对象改变了这个地址,就会影响到另一个对象。 在 js 中,如果与深拷贝一起提及的话,就意味着只在首层上进行一次完全(资源)复制,如果首层内部存在引用类型的对象,则这个对象仅仅是 copy 了内存地
阅读全文