编程语言
共 11 篇文章

JavaScript 垃圾回收:原理、机制与内存优化
作为 JavaScript 开发者,我们拥有一门 C、C++ 等编译型语言开发者很难拥有的“特权”:几乎不用手动管理内存。 日常开发中,我们可以随意创建变量、对象、函数,无需关心内存分配、释放的底层细节,这些繁琐的工作都由 JavaScript 引擎自动完成。而支撑这一切的核心机制,就是 GC(Ga
从 TS/JS 到 Go: Go 语言入门
作为一名习惯 TypeScript 的全栈开发者,初学 Go 语言(Golang)时,最直观的感受是它“反其道而行之”的设计哲学:没有继承、没有异常捕获、没有复杂的类体系,简单学习下来,个人感觉Go像是 缝合 TS + C的结合,流畅简洁书写体验 + 高性能 的特点 本文将从一段完整的入门代码出发,

包装类型
包装类型的定义和特征 在 ES 中,数据的分类分为基本数据类型和引用类型 按照最新 ES 标准定义,基本数据类型(primitive value)包括 undefined、null、boolean、number、symbol、string 引用类型包括 Object、Array、Date、RegEx

JS数据类型
数据类型 简单值与复杂值 简单值 JS 中的简单值(基本类型、原始类型)一共有 7 种: number:数字 string:字符串 boolean:布尔值 undefined:未定义 null</

class转Function
将ES6的class转换为Function class Person { constructor(name) { this.name = name; } sayHi() { console.log('hi', this.name); } } 一般来说,第
原型与原型链
原型 原型要解决的问题 上图中,通过构造函数可以创建一个用户对象 这种做法有一个严重的缺陷,就是每个用户对象中都拥有一个sayHi方法,对于每个用户而言,sayHi方法是完全一样的,没必要为每个用户单独生成一个。 要解决这个问题,必须学习原型

LRU 算法
环境 Deno2.6.8 TypeScript 概述 LRU 缓存淘汰算法就是一种常用的策略,全称为 Least Recently Used,也就是我们认为最近使用过的数据应该是 “有用的”,很久没有用过的数据应该就是无用的,内存满了就应该先删除那些很久没用过的数据 常用于有限容量的缓存优化
二叉树
描述二叉树简单结构 /** * 二叉树节点的可选类型(节点实例 或 null) * @template T 节点值的类型,与 TreeNode<T> 保持一致 * @description 简化 TreeNode<T> | null 的重复书写,提升代码可读性 */ export type
手写数组方法
代码仓库 练习: 个人学习专用知识库~ - Gitee.com forEach Array.prototype.lForEach = function (callback, thisArg) { if (typeof callback !== 'function') { throw ne
闭包
闭包 闭包不是一个具体的技术,而是一种现象,是指在定义函数时,周围环境中的信息可以在函数中使用。换句话说,执行函数时,只要在函数中使用了外部的数据,就创建了闭包 实际用处:解决全局变量污染,手动创建的闭包用null销毁(解除引用) 闭包最核心的作用是:突破函数作用域的限制,让函数能 “记住” 并操作

