《JavaScript 基础教程(第6版)》前三章读书笔记
《JavaScript & Ajax For The Web, Sixth Edition》这本译书翻译得读起来大致算是流畅,但译者仍然存在翻译不细心的毛病。另外,人邮为什么不先出《Beginning JavaScript with DOM scripting》译本呢?
第一章 了解 JavaScript
1.3 JavaScript 的起源
JavaScript 与 Java 虽然受其影响,但两者实质不同,而名称是Netscape的市场营销手段,因为借用了当时开始大行其道 Java 的声势。
1.7 组合式(snap-together)语言
JavaScript 是面向对象的语言。
把文档树中每一项当作对象,对象具有属性和方法,用点号语法组合对象、属性和方法在一起。
1.11 编写对 JavaScript 友好的 HTML
用 JavaScript 操纵文档中的对象,就要编写符合 Web 标准的 XHTML。
结构、表示、行为三者分离
第二章 开始
2.1 脚本放哪
第16页最后一行:
There's no need to add language or type attributes to the
closing script tag.
在结束标签内是没有必要用language或type,而在起始标签内用type代替language是必要的。
script 标签的 language 属性在 XHTML 中已废弃了,W3C会在以后的版本中不再支持,所以在脚本中可略过不写。
2.3 使用外部脚本
在脚本内容中有一行代码:
window.onload = writeMessage;
window.onload 是一个事件处理程序。等号后面是一个函数名:writeMessage。
意思是:窗口装载一完成,就运行 writeMessage 函数。
document.write()和innerHTML属性这两种用法都是将信息插入HTML页面。虽然innerHTML已被W3C废弃,但更通用,也是最简单的跨浏览器工作的方法。
2.9 使用 JavaScript 改进链接
第5行:“与平常一样,HTML在link标签中包含JavaScript可以使用的id”。这里的link建议翻译为“链接”。
2.10 处理引用页面
referer page 本人建议译为:引用页面。
第31页第2行:
Script 2.14. The empty
<h2> tag has an id for use by the referrer page JavaScript.
应译为:脚本 2-14 空的<h2>标签中含有一个给引用页面 JavaScript 使用的 id
第三章 语言基础
3.1 用循环不断重复
第34页3.1章节第4行:In JavaScript, loops become a vital part of your scripting toolbox.
建议译为:循环是 JavaScript 这个脚本编程工具箱中一个超级重要的部分。
循环的3个组成部分:
初始化
限制
递增
在循环的限制部分中,假设变量是10,JavaScript 编程语言数值是从0到9(即小于该变量),循环中的代码会运行10次。
3.3 Detecting Objects
这里解决了困惑了很久的一个问题,在阅读人邮的《JavaScript入门经典》时看到:
if(document.getElemetById)
当时就不懂为什么要这么写,现在明白了: 检测 document.getElementById 对象是否存在并是否能被浏览器理解,理解为true,并继续执行;否则为false,并执行else语句部分。
detection 建议译为“检测”。
对象检测被认为是解决JavaScript跨浏览器最好的方法,在实际环境中,先检测浏览器是否能够进行处理对象是很重要的,而不要想当然地认为浏览器可以处理它。
3.4 处理数组
第42页 数组中的 index 在本书中译为索引,而在《JavaScript DOM 脚本编程》中译为下标。网上有资料解释说:“索引”多指数组的数字形式的下标。
这位译者好像是从事书面英译的文学工作者,可能与《CSS实战手册》的译者一样对CSS而言可能只是半桶水。这是他的 blog:
http://blog.sina.com.cn/u/1263026645
之前他的译书是在网上炒得名气大起的《精通CSS》,而这类书通常大多是我们这些从事网页重构的Web前端开发人员阅读的。