这门课解决什么问题
写 JavaScript 遇到过这样的场景吗:明明逻辑没报错,但闭包拿到的循环变量总是不对;数组排序结果莫名其妙;或者遇到 NaN、Infinity 参与计算时,输出结果完全偏离预期。这门课不教怎么搭框架、做页面,它专门处理这些让人疑惑的边界细节。日常开发里,很多隐蔽的缺陷并非来自业务逻辑本身,而是对语言底层的运行机制存在误解。课程把日常高频踩坑的点,比如自动分号插入、作用域链、垃圾回收机制等单独拎出来剖析。它解决的是代码能跑但不知道为什么能跑、改一处崩一片的隐患问题,帮你把似懂非懂的概念彻底理清。
适合什么基础与资料怎么用
这套资料不适合零基础入门者。如果你连变量声明、基础函数调用都还在摸索阶段,直接看会非常吃力。它默认你已经能独立写页面交互,至少有一年左右的实际编写经验,遇到了实际困惑需要解惑。建议先把语言基础这一大块过一遍,尤其是闭包、作用域和错误处理这几节,这是日常排错的核心。配合资料练习时,不要只用眼睛看,每讲到一个疑难杂症,立刻打开本地编辑器复现一次。比如讲到剩余与展开运算符,就自己写几个不同层级的对象拷贝去对比结果。讲到迭代器,就手动实现一遍。只有动手跑出那些反直觉的输出,才算真正吃透。
学完能独立做什么
学完之后,你不会立刻变成架构师,但在排查复杂缺陷时会有质的改变。面对老旧项目里晦涩的函数柯里化或生成器代码,你能快速看懂其意图并安全修改。遇到内存泄漏导致页面卡顿,你能通过垃圾回收机制的知识点定位到未清除的全局引用。更重要的是,写新代码时你会主动避开那些隐蔽的坑,比如不再滥用类型转换,处理数组搜索时清楚边界情况。这门课帮你把 JavaScript 从会用提升到知其所以然,写出更稳健、可维护的业务代码。
本课程我们将一起学习 JS那些令人疑惑的问题,学习这些知识能够帮助我们对JS的认识有更近一步的提高。
课程目录
* 01 JS的疑难杂症——课程介绍/
* 01 课程介绍
* 02 JS的疑难杂症——语言基础/
* 01 语言基础——null&undefined
* 02 语言基础——函数作用域&块级作用域
* 03 语言基础——自动分号插入机制
* 04 语言基础——剩余运算符&展开运算符
* 05 语言基础——infinity&-infinity
* 06 语言基础——关于NaN
* 07 语言基础——箭头函数
* 08 语言基础——闭包
* 09 语言基础——函数柯里化
* 10 语言基础——迭代器和可迭代对象
* 11 语言基础——生成器函数
* 12 语言基础——内存管理和垃圾回收
* 13 语言基础——错误处理
* 03 JS的疑难杂症——数组/
* 01 数组——数组搜索
* 02 数组——map方法的作用
* 03 数组——数组扁平化
* 04 数组——数组排序
* 05 数组——数组解构
* 04 JS的疑难杂症——字符串/
* 01 字符串——字符串提取
* 02 字符串——大小写转换及替换
* 05 JS的疑难杂症——面向对象/
* 01 面向对象——对象字面量
* 02 面向对象——this对象
* 03 面向对象——类&类表达式&静态成员
* 04 面向对象——call&apply&bind方法
* 05 面向对象——继承和扩展内置类
* 06 面向对象——解构对象字面量
* 06 JS的疑难杂症——模块/
* 01 模块——什么是模块
* 02 模块——命名导入/导出
* 03 模块——默认导入/导出
* 07 JS的疑难杂症——DOM和Web/
* 01 DOM和Web——文档对象和窗口对象区别
* 02 DOM和Web——定时器事件
* 03 DOM和Web——事件冒泡和事件捕获
* 04 DOM和Web——事件代理/事件委托
* 08 JS的疑难杂症——防抖和节流/
* 01 防抖和节流——什么是防抖和节流
* 02 防抖和节流——防抖和节流的区别
* 03 防抖和节流——节流函数
* 04 防抖和节流——防抖函数
* 05 防抖和节流——节流场景应用
* 06 防抖和节流——防抖场景应用
* 09 JS的疑难杂症——异步JavaScript/
* 01 异步JavaScript——什么是回调函数
* 02 异步JavaScript——什么是Promise
* 03 异步JavaScript——all&allSettled&r
* 04 异步JavaScript——async/await
* 10 JS的疑难杂症——ES6数据结构/
* 01 ES6数据结构——map
* 02 ES6数据结构——set
* 03 ES6数据结构——WeakMap&WeakSet
* 11 JS的疑难杂症——JS调试/
* 01 JS调试——调试和开发者工具
* 02 JS调试——开发者工具
* 03 JS调试——JS代码调试
* 04 JS调试——代码行/事件监听器断点
* 05 JS调试——条件代码行断点
* 06 JS调试——DOM更改断点
* 07 JS调试——XHR/fetch断点
* 08 JS调试——异常断
* 09 JS调试——console对象及方法
* 10 JS调试——console对象及方法






