SF
学习进阶
学习进阶
注册登录
关注博客
注册登录
主页
关于
RSS
Day17 如何通过链表做LRU/LFU缓存?
豪猪
2023-02-02
阅读 3 分钟
288
单链表链表就是把零散的节点(node)串联起来的一种数据结构。在每个节点里,会有两个核心元素,一个是数据,一个是下一个节点的地址,我们称之为后继指针(next)
day16 为什么环形队列适合做Node数据流缓存?
豪猪
2023-02-01
阅读 3 分钟
312
如何实现队列和双队列数据结构中队列的核心思想和我们排队买票看电影一样,关键是谁排在前面,谁就可以先买到票。入队(enqeue),顾名思义就是在队伍后面加了一个人排队。按照先入先出的规则,排在最前面的人买完票了以后,就会出队(dequeue)。双队列(deque)通常我们排队的时候,都是遵循先进先出的规则,但是在有...
day15 如何通过哈希查找JS对象内存地址?
豪猪
2023-01-30
阅读 3 分钟
649
散列表:素数哈希、ASCII 哈希,还有 djb2素数哈希:把一个素数作为模数(modulus number)来给你举一个例子,在这个例子里,我们把 11 这个素数作为了模数,用下面的一组键值对中的键除以模数,所获得的余数,放到一个数组中。就形成了一个散列表。
day14 通过SparkPlug深入了解调用栈
豪猪
2023-01-29
阅读 3 分钟
630
Sparkplug的“前身”V8 用的是一个相对比较快的 Full-codegen 编译器生成未优化的代码,然后通过 Crankshaft 这个及时(JIT)编译器对代码进行优化和反优化。 Full-codegen + Crankshaft 性能问题,对JS优化不理想。
day13 JS引擎如何实现数组的稳定排序?
豪猪
2023-01-28
阅读 1 分钟
701
在数据结构中,我们大体可以分为两类。第一类是线性表,第二类是非线性表。数组可以说是一种连续存储的线性表;通过数组,我们可以实现比如之前说过的栈、队列等线性结构。除了数组以外,另外一种既基础又经典的数据结构就是对象了。
day12 JS语义分析该用迭代还是递归?
豪猪
2023-01-27
阅读 3 分钟
675
迭代:循环往复的过程递归:信息的传递需要一去一回 {代码...} 递归通常有两个基本元素一个是基本条件,另一个是递归本身。 {代码...} 上面这段代码在执行中如下。我们可以看到前面 7 步,都是递的过程。在碰到基本条件后,开始了归的过程。递归中用到的分治斐波那契(Fibonacci Sequence)数列对比下迭代和递归:迭代:...
Day 10 JS有哪8种数据类型,你需要注意什么?
豪猪
2023-01-25
阅读 3 分钟
966
原始类型(Primitive Type)和对象类型(Object Type)原始数据类型包含了数字、布尔、字符串、BigInt、null、undefined,以及后来新增的 symbol,这个数据类型的值都是不可变的(immutable)。对象数据类型则包含我们经常说的对象,对象的值是可变的(mutable)。它是一个大类,如果再细分,它又包含了我们常用的数组(...
day9 深入理解继承、Delegation和组合
豪猪
2023-01-24
阅读 4 分钟
865
如何让代码更加容易复用。继承在传统的 OOP 里面,我们通常会提到继承(Inheritance)和多态(Polymorphism)。继承是用来在父类的基础上创建一个子类,来继承父类的属性和方法。多态则允许我们在子类里面调用父类的构建者,并且覆盖父类里的方法。Javascript 如何通过继承多态重用?从 ES6 开始,通过 extends 的方式来...
day8 深入理解对象的私有和静态属性
豪猪
2023-01-23
阅读 3 分钟
999
JavaScript 的对象构建和面向对象的编程模式一个对象对外分享的,别人可以获取到的公开属性不对外暴露的,别人不能随便获取的私有属性静态属性,属于类,而不是单独属于对象的。包含公开属性和私有属性。如何创建私有属性?与Java不一样,当用JavaScript创建的一个对象,无论是使用class、字面量、还是函数构造式,一般...
day7 如何通过模块化、异步和观察做到动态加载?
豪猪
2023-01-22
阅读 2 分钟
1.1k
信任(trustable)和承诺(promise)假设两个函数A B,如果A先响应,就没办法获取B信息;如果B先响应,就没办法获取A信息。这两个函数就形成了竞争关系。
day6 map、reduce和monad如何围绕值进行操作?
豪猪
2023-01-21
阅读 1 分钟
1.7k
Map映射和函子array.map 就是一个函子(functor)函子是一个带运算工具的数据类型和数据结构值。在JavaScript中,字符串(String)就是一个数据类型,而数据(array)既是一个数据类型,也是一种结局结构。filter 过滤和筛选reduce 和缩减器单子 monad函子(functor)其实就是一个值和围绕值的一些功能。monad 就是在 functor ...
day4 如何通过部分应用和柯里化让函数具象化?
豪猪
2023-01-19
阅读 2 分钟
765
部分应用和柯里化函数的输入来自于参数,其中包含函数定义的形参和实际执行时的实参通过部分应用延迟实参传入函数式编程重在声明式和可读性,而且强调每个函数尽量解决一个单一问题。函数式编程中,我们通常会使用部分应用。它所做的就是抽象一个 partial 工具,在先预制部分参数的情况下,后续再传入剩余的参数值。如以...
《如何通过闭包对象管理程序中状态的变化?》学习笔记 day3
豪猪
2023-01-18
阅读 1 分钟
975
值的不可变原始类型不可能改变一个原始类型的值对象类型 值是可变的React.js中的props 和stateprops 通常是作为一个外部参数,传入到函数里。 作为静态元素输出在UI中渲染。state 是一个内部变量。 作为动态元素输出在UI中渲染。 props和state 都是用对象来存储状态的。结构值不可变props和state是不是必须的?props是必...
day2 《Jvascript进阶实战》学习笔记
豪猪
2023-01-18
阅读 1 分钟
290
函数式vs面向对象函数式编程函数是数据集到目标的关系形参->实参->返回值函数本身作为对象,也可以是输入或输出值,我们把这种函数就叫做高阶函数函数中有哪些副作用?外部环境:全局变量IO网络请求(HTTP)减少副作用:纯函数和不可变纯函数一个函数的返回结果的变化只依赖其参数,并且执行过程没有副作用。不可变...
1
…
More
3
4
5
(current)
上一页
5
(current)
下一页