Effective 系列丛书经典著作,亚马逊五星级畅销书,Ecma 的JavaScript 标准化委员会著名专家撰写,JavaScript 语言之父、Mozilla CTO —— Brendan Eich 作序鼎力推荐!作者凭借多年标准化委员会工作和实践经验,深刻辨析JavaScript 的内部运作机制、特性、陷阱和编程最佳实践,将它们高度浓缩为极具实践指导意义的 68 条精华建议。
本书共分为 7 章,分别涵盖 JavaScript 的不同主题。第 1 章主要讲述最基本的主题,如版本、类型转换要点、运算符注意事项和分号局限等。第 2 章主要讲解变量作用域,介绍此方面的一些基本概念,以及一些最佳实践经验。第 3 章主要讲解函数的使用,深刻解析函数、方法和类,并教会读者在不同的环境下高效使用函数。第 4 章主要讲解原型和对象,分析 JavaScript 的继承机制以及原型和对象使用的最佳实践和原则。第 5 章主要介绍数组和字典,阐述将对象作为集合的用法以及使用数组和字典的一些陷阱。第 6 章介绍库和 API,讲解如何设计良好的 API 的技巧,以清楚、简洁和明确地表达程序,并提高可重用率。第 7 章讲解并发,在技术上讨论一些“约定成俗”的 JavaScript 用法。
本书赞誉
译者序
序
前言
第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
第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
第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
关于算法分析的这多卷论著已经长期被公认为经典计算机科学的定义性描述。这一册以及刚刚出版的第4卷第2册揭开了人们急切等待的《
《经济学夜话:宏观篇》内容简介:本书为《经济学夜话》的“宏观篇”,紧跟当下实事,话题涉及新冠疫情下的世界经济、如何衡量物价
《台湾念真情》内容简介:“台湾念真情”是吴念真的第一个电视节目,重播十余年。在这本细述人间邂逅的“台湾笔记”中,吴念真以独
《新时代交通运输领域军民融合深度发展研究》内容简介:全书从历史演进着笔,探讨了深度发展的目标任务、体系建设、运行机制、发展
《赵孟頫临圣教序》内容简介:中国书法史第一个绕不过去的人物是王羲之,第二个是赵孟頫,而赵孟頫又以“右军法嫡”之集大成者见称
《我在清华等你来(第四辑)》内容简介:百年清华,莘莘学子心向往之!清华学生无疑是同龄人中的佼佼者,鲜花绽放的背后是长期的积
《激活个体》内容简介:管理是否到了终结的时候了?曾经的时代巨人都显得非常力不从心,那些原来成功的管理模式,如今都成为了企业
InThingsThatMakeUsSmart,DonaldA.Normanexploresthecomplexinteractionbetweenhumant...
《DirectX9.03D游戏开发编程基础》主要介绍如何使用DirectX9.0开发交互式3D图形程序,重点是游戏开发。全书首先介绍了必要的数学
全国专业技术人员计算机应用能力考试考前冲刺WINDOWS XP操作系统 本书特色 《全国专业技术人员计算机应用能力考试考前冲刺:中文Windows XP操作系统...
◎中国工业圈“网红”,人民日报、新华社、工业评论、36氪特邀作者,千万级网络红文《闲话工业4.0六重天》作者兔哥主笔◎水月资本
Java语言程序设计:21世纪高职高专新概念教材 内容简介 本书共11章,主要内容包括:面向对象程序设计的基本概念、原理、技术方法和Jave语言的基础知识,常用...
单片机原理及接口技术(2版) 内容简介 书中系统地介绍了80c51系列单片机的原理及接口技术,较好地体现了应用型人才的培养要求,其特点为:着力片上资源、强化编程...
大数据挖掘与分析在金融领域中的应用研究 内容简介 《大数据挖掘与分析在金融领域中的应用研究》阐述了大数据技术在金融领域的应用和发展现状,从大数据视角加以思考和探...
《人的局限性:约翰生作品集》内容简介:本书为英国著名作家、批评家塞缪尔·约翰生的作品集,以牛津《约翰生重要作品选》、哈佛《
《华杉讲透《论语》:修订版(全2册)》内容简介:华杉先生精研《论语》30多年,综合了朱熹、王阳明、张居正等先贤的经典阐释,用4
清晰、透彻和严谨是本书与其他数字通信教材的显著区别。本书由国际公认的专家和屡获殊荣的学者编写,是数字通信领域的基础性教材
Pro/ENGGINEER野火版4.0基础教程与上机指导 (孙传祝) 本书特色 《Pro/ENGINEER野火版 4.0基础教程与上机指导》涵盖Pro/ENGI...
《马化腾跑赢互联网的26个竞争策略》内容简介:腾讯17年的风雨兼程,马化腾17年的栉风沐雨,可以说是中国互联网发展的鲜活标本。《
《神经网络、模糊系统及其在运动控制中的应用》介绍:这是一本关于人工神经网络、模糊逻辑系统,以及模糊神经网络研究成果的专著