Effective JavaScript
2021-07-26 08:28:13 0 举报
AI智能生成
高效的JavaScript
作者其他创作
大纲/内容
习惯JavaScript
1. 了解你使用的JavaScript
2. 理解JavaScript的浮点数
3. 当心隐式的强制转换
4. 原始类型优于封装对象
5. 避免对混合类型使用==运算符
6. 了解分号插入的局限
7. 视字符串为16位的代码单元序列
变量作用域
8. 尽量少用全局对象
9. 始终声明局部变量
10. 避免使用with
11. 熟练掌握闭包
12. 理解变量声明提升
13. 使用立即调用的函数表达式创建局部作用域
14. 当心命名函数表达式笨拙的作用域
15. 当心局部块函数声明笨拙的作用域
16. 避免使用eval创建局部变量
17. 间接调用eval函数优于直接调用
使用函数
18. 理解函数调用、方法调用及构造函数调用之间的不同
19. 熟练掌握高阶函数
20. 使用call方法自定义接收者来调用方法
21. 使用apply方法通过不同数量的参数调用函数
22. 使用arguments创建可变参数的函数
23. 永远不要修改arguments对象
24. 使用变量保存arguments的引用
25. 使用bind方法提取具有确定接收者的方法
26. 使用bind方法实现函数柯里化
27. 使用闭包而不是字符串来封装代码
28. 不要信赖函数对象的toString方法
29. 避免使用非标准的栈
对象和原型
30. 理解prototype、getPrototypeOf和__proto__之间的不同
31. 使用Object.getPrototypeOf函数而不要使用__proto__属性
32. 始终不要修改__proto__属性
33. 使构造函数与new操作符无关
34. 在原型中存储方法
35. 使用闭包存储私有数据
36. 只将实例状态存储在实例对象中
37. 认识到this变量的隐式绑定问题
38. 在子类的构造函数中调用父类的构造函数
39. 不要重用父类的属性名
40. 避免继承标准类
41. 将原型视为实现细节
42. 避免使用轻率的猴子补丁
数组和字典
43. 使用Object的直接实例构造轻量级的字典
44. 使用null原型以防止原型污染
45. 使用hasOwnProperty方法以避免原型污染
46. 使用数组而不要使用字典来存储有序集合
47. 绝不要在Object.prototype中增加可枚举的属性
48. 避免在枚举期间修改对象
49. 数组迭代要优先使用for循环而不是for...in循环
50. 迭代方法优于循环
51. 在类数组对象上复用通用的数组方法
52. 数组字面量优于数组构造函数
库和API设计
53. 保持一致的约定
54. 将undefined看做“没有值”
55. 接收关键字参数的选项对象
56. 避免不必要的状态
57. 使用结构类型设计灵活的接口
58. 区分数组对象和类数组对象
59. 避免过度的强制转换
60. 支持方法链
并发
61. 不要阻塞I/O事件队列
62. 在异步序列中使用嵌套或命名的回调函数
63. 当心丢弃错误
64. 对异步循环使用递归
65. 不要在计算时阻塞事件队列
66. 使用计数器来执行并行操作
67. 绝不要同步地调用异步的回调函数
68. 使用promise模式清洁异步逻辑
0 条评论
下一页