简介:

《Effective JavaScript:编写高质量JavaScript代码的68个有效方法》共分为7章,分别涵盖JavaScript的不同主题。第1章主要讲述最基本的主题,如版本、类型转换要点、运算符注意事项和分号局限等。第2章主要讲解变量作用域,介绍此方面的一些基本概念,以及一些最佳实践经验。第3章主要讲解函数的使用,深刻解析函数、方法和类,并教会读者在不同的环境下高效使用函数。第4章主要讲解原型和对象,分析JavaScript的继承机制以及原型和对象使用的最佳实践和原则。第5章主要介绍数组和字典,阐述将对象作为集合的用法以及使用数组和字典的一些陷阱。第6章介绍库和API,讲解如何设计良好的API的技巧,以清楚、简洁和明确地表达程序,并提高可重用率。第7章讲解并发,在技术上讨论一些“约定成俗”的JavaScript用法。

封面:
《编写高质量JavaScript代码的68个有效方法》
目录:
本书赞誉
译者序

前言
第1章 让自己习惯JavaScript
第1条:了解你使用的JavaScript版本
第2条:理解JavaScript的浮点数
第3条:当心隐式的强制转换
第4条:原始类型优于封装对象
第5条:避免对混合类型使用==运算符
第6条:了解分号插入的局限
第7条:视字符串为16位的代码单元序列

第2章 变量作用域
第8条:尽量少用全局对象
第9条:始终声明局部变量
第10条:避免使用with
第11条:熟练掌握闭包
第12条:理解变量声明提升
第13条:使用立即调用的函数表达式创建局部作用域
第14条:当心命名函数表达式笨拙的作用域
第15条:当心局部块函数声明笨拙的作用域
第16条:避免使用eval创建局部变量
第17条:间接调用eval函数优于直接调用

第3章 使用函数
第18条:理解函数调用、方法调用及构造函数调用之间的不同
第19条:熟练掌握高阶函数
第20条:使用call方法自定义接收者来调用方法
第21条:使用apply方法通过不同数量的参数调用函数
第22条:使用arguments创建可变参数的函数
第23条:永远不要修改arguments对象
第24条:使用变量保存arguments的引用
第25条:使用bind方法提取具有确定接收者的方法
第26条:使用bind方法实现函数柯里化
第27条:使用闭包而不是字符串来封装代码
第28条:不要信赖函数对象的toString方法
第29条:避免使用非标准的栈
检查属性

第4章 对象和原型
第30条:理解prototype、getPrototype Of和__proto__之间的不同
第31条:使用Object.getPrototypeOf函数而不要使用__proto__属性
第32条:始终不要修改__proto__属性
第33条:使构造函数与new操作符无关
第34条:在原型中存储方法
第35条:使用闭包存储私有数据
第36条:只将实例状态存储在实例对象中
第37条:认识到this变量的隐式绑定问题
第38条:在子类的构造函数中调用父类的构造函数
第39条:不要重用父类的属性名
第40条:避免继承标准类
第41条:将原型视为实现细节
第42条:避免使用轻率的猴子补丁

第5章 数组和字典
第43条:使用Object的直接实例构造轻量级的字典
第44条:使用null原型以防止原型污染
第45条:使用hasOwnProperty方法以避免原型污染
第46条:使用数组而不要使用字典来存储有序集合
第47条:绝不要在Object.prototype中增加可枚举的属性
第48条:?避免在枚举期间修改对象
第49条:数组迭代要优先使用for循环而不是for...in循环
第50条:迭代方法优于循环
第51条:在类数组对象上复用通用的数组方法
第52条:数组字面量优于数组构造函数

第6章 库和API设计
第53条:保持一致的约定
第54条:将undefined看做“没有值”
第55条:接收关键字参数的选项对象
第56条:避免不必要的状态
第57条:使用结构类型设计灵活的接口
第58条:区分数组对象和类数组对象
第59条:避免过度的强制转换
第60条:支持方法链

第7章 并发
第61条:不要阻塞I/O事件队列
第62条:在异步序列中使用嵌套或命名的回调函数
第63条:当心丢弃错误
第64条:对异步循环使用递归
第65条:不要在计算时阻塞事件队列
第66条:使用计数器来执行并行操作
第67条:绝不要同步地调用异步的回调函数
第68条:使用promise模式清洁异步逻辑

电子书下载链接: http://pan.baidu.com/s/1eSNQvS2   提取密码: 请关注右下方二维码后回复资源名获取

编写高质量JavaScript代码的68个有效方法的更多相关文章

  1. JavaScript手札:《编写高质量JS代码的68个有效方法》(一)(1~5)

    编写高质量JS代码的68个有效方法(一) *:first-child { margin-top: 0 !important; } body>*:last-child { margin-botto ...

  2. 编写高质量JS代码的68个有效方法(六)

    [20141213]编写高质量JS代码的68个有效方法(六) *:first-child { margin-top: 0 !important; } body>*:last-child { ma ...

  3. 编写高质量JS代码的68个有效方法(三)

    [20141030]编写高质量JS代码的68个有效方法(三) *:first-child { margin-top: 0 !important; } body>*:last-child { ma ...

  4. 编写高质量JS代码的68个有效方法(八)

    [20141227]编写高质量JS代码的68个有效方法(八) *:first-child { margin-top: 0 !important; } body>*:last-child { ma ...

  5. 编写高质量JS代码的68个有效方法(七)

    [20141220]编写高质量JS代码的68个有效方法(七) *:first-child { margin-top: 0 !important; } body>*:last-child { ma ...

  6. 编写高质量JS代码的68个有效方法(四)

    [20141129]编写高质量JS代码的68个有效方法(四) *:first-child { margin-top: 0 !important; } body>*:last-child { ma ...

  7. 编写高质量JS代码的68个有效方法(二)

    [20141011]编写高质量JS代码的68个有效方法(二) *:first-child { margin-top: 0 !important; } body>*:last-child { ma ...

  8. 编写高质量JS代码的68个有效方法(十三)

    No.61.不要阻塞I/O事件队列 Tips: 异步API使用回调函数来延缓处理代价高昂的操作以避免阻塞主应用程序 JavaScript并发的接收事件,但会使用一个事件队列按序地处理事件处理程序 在应 ...

  9. 编写高质量JS代码的68个有效方法(十一)

    *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...

随机推荐

  1. 在ANTMINER(阉割版BeagleBone Black)运行Debain

    开门见山,直入主题 咸鱼入手3块阉割ARM板,经过快递近6天运输到手,不过价格便宜 东西下面这样的(借了咸鱼的图): 发现这块板是阉割版的国外beagleboard.org型号为BeagleBone ...

  2. SL 的 DATAGRID中如何加入计算列?

    例如,我的数据库中实体表对应到EF中的实体类是 class { public int  F1; public int F2; } 我在服务端做domainservice 我在SL端使用wcf ria, ...

  3. PaaS服务之路漫谈(三)

    此文已由作者尧飘海授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. Monolithic架构在产品访问量很大的情况下,有可能常会导致整个产品迭代或升级过程不能按预期进行,或者上 ...

  4. 《Vue 编程房内考》

    古人有云:码农爱coding,则为之计深远. 众人问:何为之? 古人曰:底层.算法和架构. 众木然. 古人又曰:多看源码. 以下内容是我在学习 Vue-2.5.2 源码时的一个总结. 第一章 活捉Vu ...

  5. call、apply、bind的异同

    一.call.apply.bind的异同 JavaScript中函数可以通过3种方法改变自己的this指向,它们是call.apply.bind.它们3个非常相似,但是也有区别.下面表格可以很直观看出 ...

  6. 【bzoj4240】 有趣的家庭菜园 树状数组

    这一题最终要构造的序列显然是一个单峰序列 首先有一个结论:一个序列通过交换相邻的元素,进行排序,最少的交换次数为该序列的逆序对个数 (该结论很久之前打表意外发现的,没想到用上了.....) 考虑如何构 ...

  7. OS之内存管理 ---基本的内存管理策略(二)

    分段 基本方法 分段就是基于用户视图的内存管理方案.逻辑地址空间是由一组段构成的,每个段都有名称和长度.地址指定了段名称和段内偏移.因此用户通过两个量来指定地址:段名称和段偏移. 为了简单,进行对段的 ...

  8. iOS自动布局框架-Masonry详解

    首先,在正式使用Masonry之前,我们先来看看在xib中我们是如何使用AutoLayout     从图中我们可以看出,只要设置相应得局限,控制好父视图与子视图之间的关系就应该很ok的拖出你需要的需 ...

  9. JavaScript 函数定义方法

    JavaScript 函数定义方法. 函数声明 在之前的教程中,你已经了解了函数声明的语法 : function functionName(parameters) { 执行的代码 } 函数声明后不会立 ...

  10. C++ 定时器Timer在项目中的使用

    目录 1.情况说明 2.空循环实现 3.定时器实现 1.情况说明 由于最近要在项目里做弹出弹幕,要求是弹出1秒后消失,一开始我使用空循环进行计时,发现执行到这段代码CPU占用率上升十几个百分点,后来改 ...