
书: https://pan.baidu.com/s/15VfTw9eJ2MoiHktwswP0gw?pwd=tq5x
笔记如下:
- “JavaScript 是一门被误解的语言,它的精华远比人们想象的要深邃。”
- “
typeof null === 'object'
是语言的一个设计错误,但却永远无法修复。” - “闭包(Closure)是 JavaScript 最强大的特性之一,它让函数可以‘记住’自己的词法作用域。”
- “
this
的值取决于函数的调用方式,而非定义位置。” - “原型继承(Prototypal Inheritance)比类继承更灵活,但大多数人误用了它。”
- “
new
关键字混淆了构造函数和普通函数,最好避免使用。” - “
==
的隐式类型转换规则充满陷阱,始终使用===
。” - “回调地狱(Callback Hell)不是 Node.js 的宿命,Promise 和
async/await
才是未来。” - “
Array.prototype.map
和Array.prototype.reduce
是函数式编程在 JavaScript 中的体现。” - “
var
存在变量提升(Hoisting),let
和const
才是更合理的选择。” - “
JSON
是 JavaScript 的子集,但并非所有 JavaScript 对象都可被JSON.stringify
序列化。” - “模块模式(Module Pattern)利用闭包实现私有变量,是早期的封装方案。”
- “
eval
是邪恶的,它会破坏作用域、性能和安全。” - “
setTimeout(fn, 0)
并非立即执行,而是将回调推入事件队列(Event Queue)。” - “JavaScript 没有真正的多线程,Web Worker 是唯一的并行解决方案。”
- “
'use strict';
可以避免许多隐式错误,如意外创建全局变量。” - “
Object.create(null)
创建一个纯净对象,无原型链污染。” - “函数是一等公民(First-Class Citizen),可以像变量一样传递和返回。”
- “
try/catch
无法捕获异步错误,必须结合 Promise 或async/await
使用。” - “JavaScript 的未来在于减少缺陷,而非增加特性——少即是多(Less is More)。”