- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
优美的特性BeautifulFeatures.PDF
第 10 章
优美的特性
Beautiful Features
我让你的脚玷污我的嘴唇,让你的肖像玷污我的眼睛,让你的每一部分玷污我的心,等候
着你的答复。你的最忠实的……
——威廉·莎士比亚,《空爱一场(Love’s Labor’s Lost )》
去年我被邀请为Andy Oram和Greg Wilson的“《Beautiful Code》 (译注1 )”(O’Reilly 出版)一
书写一篇文章,这是一本以计算机程序的表达之美为主题的选集。我负责的章节将介绍
JavaScript ,通过那一部分来证明JavaScript不虚其名,它的确是抽象、强大且有用的。然而,
我想避开不谈浏览器和其他适合使用JavaScript 的地方。我想要强调其更有分量的内容,以
显示它是值得尊敬的语言。
我立即想到Vaughn Pratt 的自顶向下的运算符优先级解析器 (译注2 )(Top Down Operator
Precedence parser ),我在JSLint 中运用了它。在计算机的信息处理技术中,解析是一个重要
的主题。一门语言是否具备为其自身编写一个编译器的能力,仍然是对这门语言完整性的
一个测试。
我想用 JavaScript 编写的解析 JavaScript 的解析器的全部代码都涵盖在文章中 。但是那章仅
是 30 章或 40 章之一,我感觉被束缚在能占用的那几页中。更大的困难是大部分读者没有
使用 JavaScript 的经验,我也不得不介绍这门语言和它的特色。
所以,我决定提炼这门语言的子集。这样,我就不必解析整个语言,并且也就不需要描述
整个语言了。我把这个子集叫做精简的 JavaScript (Simplified JavaScript )。提炼子集并不难:
它包括的就是我编写解析器所需要的特性。我在《Beautiful Code (美丽的代码)》一书中是
译注 1 :《Beautiful Code》是O’Reilly2007 年 6 月出版的书籍,参见/catalog/9780
596510046/。
译注 2 :详细内容请参阅作者的文章Top Down Operator Precedence parser——http://javascript.cro-
ckford. com/tdop/tdop.html。
98
这样描述的。
精简的 JavaScript 里都是好东西,包括以下主要内容。
函数是头等对象
在精简 JavaScript 中,函数是有词法作用域的闭包(lambda )。
99
优美的特性 │
基于原型继承的动态对象
对象是无类别的。我们可以通过普通的赋值给任何对象增加一个新成员元素。一
个对象可以从另一个对象继承成员元素。
对象字面量和数组字面量
这对创建新的对象和数组来说是一种非常方便的表示法。JavaScript 字面量是数据
交换格式 JSON 的灵感之源。
子集包含了精华中最好的部分。尽管它是一门小巧的语言,但它很强大且非常富有表现力。
JavaScript 有许多本不应该加入的额外特性,正如你在随后的附录中将看到的那样,它有大
量的会带来负面价值的特性。在子集中没有丑陋或糟糕的内容,它们全部都被筛除了。
精简的 JavaScript 不是一个严格的子集。我添加了少许新特性。最简单的是增加了 pi 作为
一个简单的常量。 我这么做是为了证明解析器的一个特性。我也展示了一个更好的保留词
策略并证明哪些保留词是多余的。在一个函数中,一个单词不能既被用作变量或参数名,
又被用作一个语言特性。你可以让某个单词用在其中之一上,并允许程序员自己选择。这
会使一门语言易于学习,因为你不必知道你没有使用的特性。并且它会使这门语言易于扩
展,因为它无须保留更多的词来增加新特性。
我也增加了块级作用域。块级作用域不是一个必需的特性,但没有它会让有经验的程序员
感到困惑。包含块级作用
您可能关注的文档
- 二、PCR一2压电共轨喷油系统概况-柴油发动机管理系统.PDF
- 二、人物图案写生与变化-艺术系.ppt
- 二、无线电通讯.ppt
- 二、沟通形象魅力与事业.ppt
- 二、热水供暖系统管路水力计算的基本公式沿程损失.ppt
- 二内涵与主要做法三机制体制创新系统平台中国电力建设集团.ppt
- 二岸三地资金回台财富管理.doc
- 二油桐花编织的秘径二油桐花编织的秘径二油桐花编织的秘.doc
- 二社交沟通方面保良局.ppt
- 二维气相色谱技术及其进展.doc
- 2024高考物理一轮复习规范演练7共点力的平衡含解析新人教版.doc
- 高中语文第5课苏轼词两首学案3新人教版必修4.doc
- 2024_2025学年高中英语课时分层作业9Unit3LifeinthefutureSectionⅢⅣ含解析新人教版必修5.doc
- 2024_2025学年新教材高中英语模块素养检测含解析译林版必修第一册.doc
- 2024_2025学年新教材高中英语单元综合检测5含解析外研版选择性必修第一册.doc
- 2024高考政治一轮复习第1单元生活与消费第三课多彩的消费练习含解析新人教版必修1.doc
- 2024_2025学年新教材高中英语WELCOMEUNITSectionⅡReadingandThi.doc
- 2024_2025学年高中历史专题九当今世界政治格局的多极化趋势测评含解析人民版必修1.docx
- 2024高考生物一轮复习第9单元生物与环境第29讲生态系统的结构和功能教案.docx
- 2024_2025学年新教材高中英语UNIT5LANGUAGESAROUNDTHEWORLDSect.doc
文档评论(0)