介绍了 var、let 和 const 在 JavaScript 中的作用域和行为差异。var 声明的变量会提升并挂载到 window 对象上,而 let 和 const 声明的变量存在暂时性死区 (TDZ),在声明代码执行前无法访问,否则会抛出引用错误。
介绍了浏览器中 unhandledrejection 和 rejectionhandled 事件的作用与使用方法,通过监听未处理和已处理的 Promise 拒绝状态,展示了如何跟踪并处理程序中的拒绝状态,提供了代码示例及相关笔记参考。
讲解了如何使用生成器为对象定义迭代器,并展示了访问默认迭代器和迭代器与扩展运算符的结合,通过示例说明了迭代器在对象、数组和字符串中的应用,强调了生成器函数返回迭代器的特性。
讲解了通过 ECMAScript5 的 Object.defineProperty 和 ECMAScript6 的 Proxy 与 Reflect,实现对对象属性值修改的监听,分别展示了两种方法的代码示例,实时更新输入框与显示内容的同步效果。
介绍了对象解构和数组解构的基础用法、非初始化赋值、默认值设置及扩展运算符的应用,展示了变量值交换、深拷贝及混合解构解析复杂数据的技巧,并探讨了函数参数默认值的不同设置方式。
概述了如何使用 husky、lint-staged、prettier、eslint、stylelint 和 htmllint 等工具规范 JavaScript、CSS 和 HTML 代码,提供详细的配置示例,涵盖代码格式、语法规则以及最佳实践,帮助开发者构建一致且高质量的代码风格。
介绍了 then() 方法为 Promise 添加解决 (fulfillment) 和拒绝 (rejection) 状态回调的功能,其返回一个新的 Promise 实例以支持链式调用。若回调函数返回另一个 Promise 实例,则后续 then() 方法会等待该 Promise 状态改变后再执行,体现异步操作的串联特性。
介绍了 Map 和 WeakMap 的定义、语法、方法及应用场景。Map 支持任意类型的键,提供多种操作和遍历方法;WeakMap 的键必须是对象,且为弱引用,支持垃圾回收机制,适合解决内存泄漏问题,例如在绑定 Dom 对象事件时自动释放内存。
介绍了 Set 数据结构的定义、语法及常用方法,包括 add、delete、has 和 clear,支持存储任意类型的唯一值。通过 Set 可实现数组去重,利用扩展运算符将 Set 转换为数组,简化去重操作并保留原始数据顺序。
介绍了 JavaScript 中递归的基本概念及其内存开销,指出递归调用会因栈空间限制导致溢出错误。同时提到尾递归优化理论上能避免栈溢出,但当前浏览器尚未完全支持尾递归优化,因此在实际使用中仍需注意性能问题。