摘要
“学习、理解、实践大师的思想,我们才有可能站在巨人的肩上,才有机会赶超大师,这本书就是开始。”
“这是一本介绍JavaScript语言本质的重要书籍,值得任何正在或者想从事JavaScript开发的人阅读,并且非常需要反复阅读。”
“如果说犀牛展现了 JavaScript 特性的丰富和功能的强大,蝴蝶(书)则完美诠释了 JavaScript 语言轻巧简洁的特点。”
“它是一本很好的帮助你提高 JavaScript 水平的书籍,因为总结也是学习的重要过程。”
“信息密度如此之大,却毫不啰嗦,适合已有一门语言功底的人快速掌握JavaScript中值得学习和使用的部分,恰当而又全面。”
JavaScript语言精粹(修订版) 内容简介
JavaScript 曾是“世界上误解的语言”,因为它担负太多的特性,包括糟糕的交互和失败的设计,但随着Ajax 的到来,JavaScript“从受误解的编程语言演变为非常流行的语言”,这除了幸运之外,也证明了它其实是一门优秀的语言。Douglas Crockford 在本书中剥开了JavaScript 沾污的外衣,抽离出一个具有更好可靠性、可读性和可维护性的JavaScript 子集,让你看到一门优雅的、轻量级的和非常富有表现力的语言。作者从语法、对象、函数、继承、数组、正则表达式、方法、样式和优美的特性这9 个方面来呈现这门语言真正的精华部分,通过它们完全可以构建出优雅高效的代码。作者还通过附录列出了这门语言的毒瘤和糟粕部分,且告诉你如何避免它们。最后还介绍了JSLint,通过它的检验,能有效地保障我们的代码品质。
《JavaScript语言精粹(修订版)》是一本介绍JavaScript 语言本质的专业书籍,值得任何正在或准备从事JavaScript 开发的人阅读,并且需要反复阅读。学习、理解、实践大师的思想,我们才可能站在巨人的肩上,才有机会超过大师,这本书就是开始。
JavaScript语言精粹(修订版) 目录
第1 章 精华
为什么要使用JavaScript
分析JavaScript
一个简单的试验场
第2 章 语法
空白
标识符
数字
字符串
语句
表达式
字面量
函数
第3 章 对象
对象字面量
检索
更新
引用
原型
反射
枚举
删除
减少全局变量污染
第4 章 函数
函数对象
函数字面量
调用
参数
返回
异常
扩充类型的功能
递归
作用域
闭包
回调
模块
级联
柯里化
记忆
第5 章 继承
伪类
对象说明符
原型
函数化
部件
第6 章 数组
数组字面量
长度
删除
枚举
容易混淆的地方
方法
指定初始值
第7 章 正则表达式
一个例子
结构
元素
第8 章 方法
Array
Function
Number
Object
RegExp
String
第9 章 代码风格
第10 章 优美的特性
附录A 毒瘤
附录B 糟粕
附录C JSLint
附录D 语法图
附录E JSON
索引
JavaScript语言精粹(修订版) 精彩文摘
第4章
函数
JavaScript设计得最出色的就是它的函数的实现。它几乎接近于完美。但是,想必你也能预料到,JavaScript的函数也存在瑕疵。函数包含一组语句,它们是JavaScript的基础模块单元,用于代码复用、信息隐藏和组合调用。函数用于指定对象的行为。一般来说,所谓编程,就是将一组需求分解成一组函数与数据结构的技能。
函数对象
JavaScript中的函数就是对象。对象是“名/值”对的集合并拥有一个连到原型对象的隐藏连接。对象字面量产生的对象连接到Object.prototype。函数对象连接到Function.prototype(该原型对象本身连接到Object.prototype)。每个函数在创建时会附加两个隐藏属性:函数的上下文和实现函数行为的代码。
每个函数对象在创建时也随配有一个prototype属性。它的值是一个拥有constructor属性且值即为该函数的对象。这和隐藏连接到Function.prototype完全不同。这个令人费解的构造过程的意义将会在下个章节中揭示。
因为函数是对象,所以它们可以像任何其他的值一样被使用。函数可以保存在变量、对象和数组中。函数可以被当做参数传递给其他函数,函数也可以再返回函数。而且,因为函数是对象,所以函数可以拥有方法。
函数的与众不同之处在于它们可以被调用。
调用
调用一个函数会暂停当前函数的执行,传递控制权和参数给新函数。除了声明时定义的形式参数,每个函数还接收两个附加的参数:this和arguments。参数this在面向对象编程中非常重要,它的值取决于调用的模式。在JavaScript中一共有4种调用模式:方法调用模式、函数调用模式、构造器调用模式和apply调用模式。这些模式在如何初始化关键参数this上存在差异。
调用运算符是跟在任何产生一个函数值的表达式之后的一对圆括号。圆括号内可包含零个或多个用逗号隔开的表达式。每个表达式产生一个参数值。每个参数值被赋予函数声明时定义的形式参数名。当实际参数(arguments)的个数与形式参数(parametem)的个数不匹配时,不会导致运行时错误。如果实际参数值过多了,超出的参数值会被忽略。
本文来自Rose情調※投稿,不代表电子书资源网立场,如若转载,请联系原作者获取。