Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

JacksonHe04/coding-in-javascript

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

41 Commits

Repository files navigation

Coding in JavaScript

题目来源:LeetCode 力扣 | CodeTop 企业题库 | 前端充电宝

一、仓库简介

本仓库用于存放我的 Leetcode 算法题和 JavaScript 手写题的解答与学习记录。目前仓库包含五个主要目录:leetcodehot100handwrittingoutputscene,分别对应不同的刷题计划和学习内容。所有题目均使用 JavaScript 实现,特别适合前端开发工程师和 Node.js 开发工程师学习和参考。

二、目录说明

这是当前我主要维护和更新的目录,包含按照 CodeTop 网站高频题目顺序刷题的记录。该目录会持续更新,题目编号格式为 #xx题目名称(题号),每道题目都包含详细的解题思路和代码实现。

这是专门用于存放 JavaScript 手写题的实现目录。包含了前端面试中常见的手写题,如防抖、节流、深浅拷贝、Promise.all 实现、new 关键字实现、instanceof 实现、函数柯里化、AJAX 封装、JSONP 实现等。每个手写题都有详细的实现代码和注释说明,帮助理解 JavaScript 核心概念和编程技巧。

该目录存放 JavaScript 基础概念的学习和练习代码,主要包含:

  • event-loop:事件循环机制相关的练习题,包含微任务、Promise 状态变化、then/catch 处理等13个练习文件
  • this:this 指向相关的练习题,包含全局 this、函数绑定、箭头函数、构造函数等9个练习文件

该目录存放的是 Leetcode Hot100 题集的部分解答。已完成的题目按照不同的解题思路和算法类型进行了分类,如哈希表、双指针等。目前包含7道经典题目,每道题都有完整的解题思路和代码实现。

该目录存放特定场景下的代码实现,目前包含腾讯相关的面试题或项目代码。

存放学习笔记和文档,记录学习过程中的重要知识点和总结。

三、项目结构详情

算法题目录结构

每个算法题都是一个独立的子目录,包含以下文件:

  • README.md:题目描述、解题思路和注意事项
  • solution.js:常见解法的实现,包含详细的注释说明
  • imitation.js:我个人提交的代码,相对简洁,可作为快速参考
  • review-xx-xx-xx.js:复习时的代码实现(部分题目包含)

手写题目录结构

每个手写题通常包含:

  • written.js:手写实现的代码
  • 对应功能的具体实现文件(如 debounce.jsthrottle.js 等)
  • 相关的测试用例和示例

练习题目录结构

output 目录下的练习题按主题分类,每个 .js 文件都是一个独立的练习案例,包含具体的代码实现和注释说明。

四、手写题清单

handwritting 目录目前包含以下手写题实现:

  1. 防抖(Debounce) - 防止函数频繁调用的优化技术
  2. 节流(Throttle) - 控制函数执行频率的优化技术
  3. 浅拷贝(Shallow Copy) - 对象浅层复制的多种实现方法
  4. 深拷贝(Deep Copy) - 对象深层复制的完整实现
  5. Promise.all - 并发执行多个 Promise 的实现
  6. new 关键字 - 模拟 new 操作符的完整实现
  7. instanceof 操作符 - 类型检测操作符的手写实现
  8. 函数柯里化(Curry) - 函数式编程中的重要概念
  9. AJAX 封装 - 原生 XMLHttpRequest 的封装实现
  10. Promise 封装 AJAX - 使用 Promise 封装异步请求
  11. JSONP - 跨域请求的经典解决方案
  12. reduce 实现 map - 使用 reduce 方法实现 map 功能

每个手写题都包含详细的注释说明和多种实现方式,帮助深入理解 JavaScript 核心机制。

五、更新计划

我会定期对 leetcode 目录进行更新,持续记录高频面试算法题的解题过程和思路。handwritting 目录将持续添加前端面试中常见的手写题实现。output 目录会根据学习进度添加新的 JavaScript 基础概念练习。更新频率会根据实际学习进度调整,但会保持较为稳定的更新节奏。

六、使用建议

  • 如果您想了解当前我正在学习的算法题,请查看 leetcode 目录
  • 如果您对 Leetcode 热门 100 题感兴趣,可以参考 hot100 目录中的已完成题目
  • 如果您正在准备前端面试或想深入理解 JavaScript 核心概念,推荐查看 handwritting 目录
  • 如果您想学习 JavaScript 基础概念(如事件循环、this 指向),可以参考 output 目录
  • 每道题目通常包含多种解法,并附有详细的注释说明
  • 建议先阅读 README.md,然后查看 solution.js 了解详细解法,最后可以参考 imitation.js 作为简洁实现的示例

在查看代码和解题思路时,若发现任何问题或有更好的解法建议,欢迎随时与我交流。

七、联系方式

若您有任何关于本仓库内容的疑问或建议,可以通过以下方式联系我:

希望本仓库能够对您在算法学习和面试准备方面有所帮助,特别是对前端开发工程师和 Node.js 开发工程师的朋友们!

About

JavaScript is the best language!

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /