相关信息可以看这里:http://blog.csdn.net/aimingoo/article/details/7362552
本文只发勘误。
勘误
第一印次
在第二印次中,已经被处理的勘误:12处(该版有两个印次,下面这些勘误是在第二印次中已经修订了的)
P6:正文倒数第二行中:
缘于DHTML(Dynamic HML,动态网页)带来的……
改为:
缘于DHTML(Dynamic HTML,动态网页)带来的……
P35:(除页首的加框注释之外的)正文第一段第一行:
typeof运算总是以字符串形式返回上述6种类型之一。
改为:
typeof运算总是以字符串形式返回上述6种类型之一(另请参见章节5.7.1)。
P42:倒数第二行中:
——一个值类型或引用类型的数据,或者undefined。
改为:
——一个值类型(包括undefined)或引用类型的数据。
P43:第二段的最末一行中:
……普通的表达式一样:值类型或引用类型的数据,或者undefined。
改为:
……普通的表达式一样:值类型(包括undefined)或引用类型的数据。
P194:表3-13,表格下脚注:
*注1:必须至少具有get或set两种方法之一。
改成:
*注:必须至少具有get或set两种存取描述之一。
P205:本页最后一行中:
……,着实不妥。
改为:
……,着实不妄。
P215:倒数第二段、第二行中:
第10行代码的实质是,刚被创建的对象实例。先通过点运算符“.”进行了一次……
改为:
第10行代码的实质是:对刚创建出的对象实例使用点运算符“.”进行一次……
P422:脚注1中开始处:
在更新的Spider JavaScript中,……
改为:
在更新的SpiderMonkey JavaScript中,……
P429:该页中有三段代码,第一、二段中各有一个(共二处):
[idx]
改为:
[x]
P184:代码最后4行中(有两处):
unknowObj
改为:
unknownObj
P242:第一段代码中,第5行(一处):
'unknow type'
改为
'unknown type'
P344-345两页中(共5处):
1)P344页:第一段代码的第一行注释,以及第一段正文第一行(两处):
'date'和'unknow'
改为
'date'和'unknown'
2) P344页:最后一段正文的第四行(一处):
date与unknow
改为
date与unknown
3) P345页:第一段代码倒数第四行(一处):
// ……所识别的类型:unknow
改为
// ……所识别的类型:unknown
4) P345页:第三行正文文字(一处):
……则理解为'unknow',
改为
……则理解为'unknown',
第二印次
在第二印次之后发现的勘误:22处
P264,正文第三段:
换而言之,正如由于已经存在……
改为
换而言之,正由于已经存在……
P113,正文倒数第一段之上(列表项,第二项):
如果其,中运算的结果……
改为
如果其中运算的结果……
P100,第三个示例代码块中,有一半的错误。
行1~2所示的示例,在新的Javascript实现中,这种情况下仍然能触发严格模式,因为纯粹由回车换行表示的空行不会解析为语句行(在旧的或不正确的实现中,仍然存在这一现象);对于行4所示的例子,由分号来表示的空行,是会触发严格模式的,因为分号是明确的语法元素。
P138,正文倒数第二段,末二行:
因此“if语句包含了for语句的语法作用域”。
改为
因此“if语句包含了while语句的语法作用域”。
P152,正文第四段第一行行首:
全部变量的作用域……
改为
全局变量的作用域……
P311,第三个代码块,第一行(这里可能是印刷问题):
checkInstance 2 = function() {
改为
checkInstance_2 = function() {
P151,正文第三段,第三行:
而局部不能访问全局的信息,
改为
而全局不能访问局部的信息,
P179,代码块,第二行:
var bird = (arguments、length、== 1 ? arguments[0] : this);
改为
var bird = (arguments.length == 1 ? arguments[0] : this);
P219~P220
这两页的正文中有六处将单词expression,写成了expresstion,多了一个字母“t”。示例代码中没有错误。
P213,页面底部一行(代码块中最后一行):
var fac = new Factiory();
改为
var fac = new Factory();
P209,最后一个正文段落,第三行:
函数get_value用于获取值。
改为
函数get_value()用于获取值。
P229~P230,这里有两个代码块,其中P229的“示例6”,与P230中4.4.4小节的第一个代码块/行:
(if #f + *) 3 4)
改为
((if #f + *) 3 4)
P225,最末一行:
函数对IE样式表达式的补充及其效果如图4-2所示。
改为
函数对IE样式表表达式的补充及其效果如图4-2所示。
P225,正文第三段,第二行(等号右边多出一空格):
来决定指定元素(id= rightSpan)的……
改为
来决定指定元素(id=rightSpan)的……
P228,第二个代码块,第6~7行代码:
else {y;
return x *
}
改为
else {
return x * y;
}
P130,正文最末一段,第二行:
在是JavaScript 1.1中提出的,
改为
是在JavaScript 1.1中提出的,
P275,正文的4.7.1小节的第三段:
由于在JavaScript中允许局部变量访问upvalue和全局变量,
改为
由于在JavaScript中允许在函数内访问upvalue和全局变量,
P276,正文第一段,第二行:
对于严格模式下的函数来说是不正确的。
改为
对于严格模式下的函数来说是不能访问的。
P252,正文第三段,最末两行:
……的原因是:第二次执行函数时,在进入函数前varDecls被再次初始化了。
改为
……的原因是:第二次执行的函数是一个新的函数实例,因此有一个新初始化的varDecls。
P308,示例6,应对注释略作修改:
// 示例6:检测表达式的语法声明效果
改为
// 示例6:检测表达式的语法声明效果(该示例所示效果在IE8以上已被修正)
P196,表格(除表头外)的第三项
getOwnPropertyDescriptor(obj)
改为
getOwnPropertyDescriptor(obj, propName)
P193~P194,表格。这两份表格中,对于configurable项的说明中,在“含义”列:
值为false时,Writable与Enumerable值是可以修改的,
改为
值为true时,Writable与Enumerable值是可以修改的,