来自“javascript the good parts”的代码片段阻止了writeln的工作

时间:2013-09-29 01:36:13

标签: javascript

我正在浏览javascript好书的部分,并找到了一个不适合我的代码段。很难调试,因为我实际上不知道任何JavaScript,我试图从这本书中学习......

这是我的计划:

document.writeln('hello world');

var empty_object = {}; 

var stooge = { 
    "first-name": "Jerome", 
    "last-name": "Howard" 
};
/*
var flight = { 
    airline: "Oceanic", 
    number: 815,
    departure: { 
        IATA: "SYD", 
        time: "2004-09-22 14:55", 
        city: "New York"
    }, 
    arrival: { 
        IATA: "LAX"
        time: "2004-09-23 10:42",
        city: "Los Angeles" 
    }
};
*/
document.writeln('Hello world'); 

现在当我删除var航班声明之间的注释块时,没有任何输出。作为参考,这是本书的第21页。

1 个答案:

答案 0 :(得分:3)

"LAX"后有一个逗号丢失。这是Crockford编码风格的挫折之一 - 缺少逗号很难注意到。有替代编码样式可以解决这个问题(例如逗号优先),但它们有自己的问题。

此外,document.writeln具有潜在的危险性而且不是最佳实践 - 如果您要查看某些内容正在运行,请打开控制台(Chrome中的 F12 ,Firebug(对于Firefox的本机控制台,一个比原生的更好的Firefox扩展和IE, Ctrl + Shift + K

Firebug console Source with error line highlighted

错误告诉你在第20行之前或第20行是一个错误 - 因为没有逗号,它会期望对象文字的结尾(以}结尾),所以它在第20行给出错误