【代码随想录刷题总结】leetcode707-设计链表
引言大家好啊,我是前端拿破轮😁。 跟着卡哥学算法有一段时间了,通过代码随想录的学习,受益匪浅,首先向卡哥致敬🫡。 但是在学习过程中我也发现了一些问题,很多当时理解了并且AC的题目过一段时间就又忘记了,或者不能完美的写出来。根据费曼学习法,光有输入的知识掌握的是不够牢靠的,所以我决定按照代码随想录的顺序,输出自己的刷题总结和思考。同时,由于以前学习过程使用的是JavaScript,而在2025年的今天,TypeScript几乎成了必备项,所以本专题内容也将使用TypeScript,来巩固自己的TypeScript语言能力。 题目信息设计链表 leetcode题目链接 你可以选择使用单链表或者双链表,设计并实现自己的链表。 单链表中的节点应该具备两个属性:val 和 next 。val 是当前节点的值,next 是指向下一个节点的指针/引用。 如果是双向链表,则还需要属性 prev 以指示链表中的上一个节点。假设链表中的所有节点下标从 0 开始。 实现 MyLinkedList 类: MyLinkedList() 初始化 MyLinkedList 对象。int get(int...
【万字长文】深入浅出防抖debounce和节流throttle
引言如果各位同学参加过前端的面试,那么很大概率会遇到防抖和节流的问题。这篇文章笔者就带大家深入分析防抖和节流,一次性搞定面试题。 老规矩,带着问题来学习,我们带着以下几个问题来逐步深入,掌握防抖和节流。 什么是防抖和节流? 为什么需要防抖和节流? 怎么样进行防抖和节流? 一、什么是防抖和节流?这里我们来考虑一个生活中的例子,
【代码随想录刷题总结】leetcode203-移除链表元素
引言大家好啊,我是前端拿破轮😁。 跟着卡哥学算法有一段时间了,通过代码随想录的学习,受益匪浅,首先向卡哥致敬🫡。 但是在学习过程中我也发现了一些问题,很多当时理解了并且AC的题目过一段时间就又忘记了,或者不能完美的写出来。根据费曼学习法,光有输入的知识掌握的是不够牢靠的,所以我决定按照代码随想录的顺序,输出自己的刷题总结和思考。同时,由于以前学习过程使用的是JavaScript,而在2025年的今天,TypeScript几乎成了必备项,所以本专题内容也将使用TypeScript,来巩固自己的TypeScript语言能力。 题目信息移除链表元素 leetcode题目链接 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回...
红宝书学习
概述 介绍JavaScript的起源:从哪里来,如何发展,以及现今的状况。这一章会谈到JavaScript与ECMAScript的关系,DOM,BOM,以及ECMA和W3C相关的标准。 介绍JavaScript如何与HTML结合起来创建动态网页,主要介绍在网页中嵌入JavaScript的不同方式,还有JavaScript的内容类型及其与<script>元素的关系。 介绍语言的基本概念,包括语法和流控制语句;解释JavaScript与其他类C语言在语法上的异同点。在讨论内置操作符时也会谈到强制类型转换。此外还将介绍所有的原始类型,包括Symbol。 探索JavaScript松散类型下的变量处理。这一章将涉及原始类型和引用类型的不同,以及与变量有关的执行上下文。此外,这一章也会讨论JavaScript中的垃圾回收,涉及在变量超出作用域时如何回收内存。 讨论JavaScript所有内置的引用类型。如Date,...
字节跳动面试准备2025-06-18
基础技术问题HTML51. 什么是DOCTYPE,有什么作用在HTML中,文档类型声明是所有文档必须的。<!DOCTYPE html>是HTML5的文档类型声明,它的目的是防止浏览器在渲染文档时使用怪异模式,也就是说,<!DOCTYPE html>文档类型声明确保浏览器会尽力遵循相关规范,而不是使用与某些规范不兼容的不同渲染模式。 文档类型声明不区分大小写,既可以写为<!doctype html>,也可以写成<!DOCTYPE html>。但通常使用大写。 标准模式和怪异模式 在互联网的早期,网页通常以两种版本编写:一种用于Netscape浏览器,另一种用于IE浏览器。当W3C制定网络标准时,浏览器并不能立即开始使用它们,因为这样会破坏网络上大多数现有的网站。因此,浏览器引入了两种模式,以区别对待符合新标准的新网站和遗留旧网站。 现在,网络浏览器的布局引擎使用三种模式:怪异模式、有限怪异模式和无怪异模式。在怪异模式下,布局会模拟 Netscape 4 和 Internet Explorer 5...
【万字长文】深入浅出:彻底搞懂Promise
手写Promise静态方法核心创建方法1. Promise.resolvePromise.resolve() 静态方法以给定值“解决(resolve)”一个 Promise。如果该值本身就是一个 Promise,那么该 Promise 将被返回;如果该值是一个 thenable 对象,Promise.resolve() 将调用其 then() 方法及其两个回调函数;否则,返回的 Promise 将会以该值兑现。 该函数将嵌套的类 Promise 对象(例如,一个将被兑现为另一个 Promise 对象的 Promise 对象)展平,转化为单个 Promise 对象,其兑现值为一个非 thenable 值。 123456789101112131415class MyPromise { public static resolve(value: any) { // 若为Promise实例则直接返回 if (value instanceof Promise) return value; return new...
当我用deepwiki来学习Webpack源码
概述Webpack是一个用于JavaScript应用程序的模块打包工具。它转换,打包并组合代码和其他资源,以便在浏览器或其他平台上使用。本节内容提供了Webpack仓库架构的高层次概述,以及其核心系统及其交互方式。 什么是WebpackWebpack是一个静态模块打包工具,它通过分析应用程序的模块依赖关系图生成一个或多个打包文件。虽然主要是专注于JavaScript,但是Webpack可以通过其加载器(loader)系统转换几乎所有类型的文件。本质上,Webpack分析具有依赖关系的模块,生成打包文件,作为浏览器或其他环境的静态资源。 核心系统架构Webpack由几个关键系统组成,这些系统协同工作以处理模块并生成输出。其架构高度模块化并且可扩展,围绕着插件系统构建。 编译流程Webpack的编译过程包括:配置处理,模块解析,转换,优化和代码生成。 123456789101112131415161718192021222324252627282930313233343536373839graph TD %% Webpack构建流程横向示意图 subgraph...
当我用deepwiki来学习React源码
概述本文档全面介绍了React代码库,解释了其架构,关键组件以及他们是如何协同工作来创建React库生态系统。React是一个基于组件的,声明式的JavaScript库,用于构建用户界面。 React简介React是由Meta(前Facebook)和开发者社区开发与维护的JavaScript库。其主要目的是通过组件化架构来简化用户界面的构建。React采用虚拟DOM进行高效的渲染和更新,使开发者能够创建交互式且更新可预测的用户界面。 React有以下几点关键原则: 声明式: 开发者根据当前的状态描述UI应该呈现的样子 组件化: React将UI分解为封装的,可复用的组件 一次学习,到处编写:React可以用于构建网页应用(React DOM),移动应用(React...





