• Effective JavaScript: 编写高质量JavaScript代码的68个有效方法(目录)


    本书赞誉
    译者序

    前言
    第 1 章 让自己习惯 JavaScript 1
    第 1 条: 了解你使用的 JavaScript
    版本 1
    第 2 条:理解 JavaScript 的浮点数 6
    第 3 条:当心隐式的强制转换 8
    第 4 条:原始类型优于封装对象 13
    第 5 条: 避免对混合类型使用
    == 运算符 14
    第 6 条:了解分号插入的局限 16
    第 7 条: 视字符串为 16 位的代码
    单元序列 21
    第 2 章 变量作用域 25
    第 8 条:尽量少用全局对象 25
    第 9 条:始终声明局部变量 27
    第 10 条:避免使用 with 28
    第 11 条:熟练掌握闭包 31
    第 12 条:理解变量声明提升 34
    第 13 条: 使用立即调用的函数表达式
    创建局部作用域 36
    第 14 条: 当心命名函数表达式
    笨拙的作用域 38
    第 15 条: 当心局部块函数声明
    笨拙的作用域 41
    第 16 条: 避免使用 eval 创建局部
    变量 43
    第 17 条: 间接调用 eval 函数优于
    直接调用 44
    第 3 章 使用函数 46
    第 18 条: 理解函数调用、方法调用及
    构造函数调用之间的不同 46
    第 19 条:熟练掌握高阶函数 48
    第 20 条: 使用 call 方法自定义接
    收者来调用方法 51
    第 21 条: 使用 apply 方法通过不同
    数量的参数调用函数 53
    第 22 条: 使用 arguments 创建可变
    参数的函数 54
    第 23 条: 永远不要修改 arguments
    对象 56
    第 24 条: 使用变量保存 arguments
    的引用 58
    第 25 条: 使用 bind 方法提取具有
    确定接收者的方法 59
    XII
    第 26 条: 使用 bind 方法实现
    函数柯里化 61
    第 27 条: 使用闭包而不是字符串
    来封装代码 62
    第 28 条: 不要信赖函数对象的
    toString 方法 63
    第 29 条: 避免使用非标准的栈
    检查属性 65
    第 4 章 对象和原型 67
    第 30 条: 理解 prototype、getPrototype
    Of 和 __proto__ 之间的
    不同 67
    第 31 条: 使用 Object.getPrototypeOf
    函数而不要使用 __proto__
    属性 69
    第 32 条: 始终不要修改 __proto__
    属性 70
    第 33 条: 使构造函数与 new 操作
    符无关 71
    第 34 条: 在原型中存储方法 73
    第 35 条: 使用闭包存储私有数据 75
    第 36 条: 只将实例状态存储在
    实例对象中 76
    第 37 条: 认识到 this 变量的隐式
    绑定问题 78
    第 38 条: 在子类的构造函数中
    调用父类的构造函数 81
    第 39 条: 不要重用父类的属性名 84
    第 40 条: 避免继承标准类 86
    第 41 条: 将原型视为实现细节 88
    第 42 条: 避免使用轻率的猴子补丁 88
    第 5 章 数组和字典 91
    第 43 条: 使用 Object 的直接实例
    构造轻量级的字典 91
    第 44 条: 使用 null 原型以防止
    原型污染 94
    第 45 条: 使用 hasOwnProperty 方法
    以避免原型污染 95
    第 46 条: 使用数组而不要使用
    字典来存储有序集合 99
    第 47 条: 绝不要在 Object.prototype
    中增加可枚举的属性 102
    第 48 条: 避免在枚举期间修改
    对象 103
    第 49 条: 数组迭代要优先使用 for
    循环而不是 for...in 循环 108
    第 50 条: 迭代方法优于循环 109
    第 51 条: 在类数组对象上复用
    通用的数组方法 113
    第 52 条: 数组字面量优于数组
    构造函数 114
    第 6 章 库和 API 设计 116
    第 53 条: 保持一致的约定 116
    第 54 条: 将 undefined 看做
    “没有值” 117
    第 55 条: 接收关键字参数的
    选项对象 121
    第 56 条: 避免不必要的状态 125
    第 57 条: 使用结构类型设计
    灵活的接口 127
    第 58 条: 区分数组对象和类数组
    对象 130
    XIII
    第 59 条: 避免过度的强制转换 134


    第 60 条: 支持方法链 137


    第 7 章 并发 140


    第 61 条: 不要阻塞 I/O 事件队列 140


    第 62 条: 在异步序列中使用嵌套或命名的回调函数 143

    第 63 条: 当心丢弃错误 147

    第 64 条: 对异步循环使用递归 150


    第 65 条: 不要在计算时阻塞事件队列 153

    第 66 条: 使用计数器来执行并行操作 156

    第 67 条: 绝不要同步地调用异步的回调函数 160

    第 68 条: 使用 promise 模式清洁异步逻辑 162

    progress every day !
  • 相关阅读:
    使用过的一些前端工具
    文档和元素中与几何形状和滚动相关的属性和方法
    文档元素选取和遍历中的一些容易忘记的概念
    只存在于理想中的客户端JavaScript时间线
    JavaScript函数代码和执行上下文--ECMA-262-5
    JavaScript中的闭包
    Git Note
    HDOJ 4463 Outlets 最短路
    HDOJ 4548 美素数
    HDOJ 2544 最短路
  • 原文地址:https://www.cnblogs.com/hghrpg/p/4592689.html
Copyright © 2020-2023  润新知