2013-09-29 2 views
0

Я просматриваю в JavaScript javascript хорошие детали и нашел фрагмент кода, который не работает для меня. Очень трудно отлаживать, как я на самом деле не знаю никаких JavaScript, и я стараюсь, чтобы узнать из этой книги ...Фрагмент кода из «javascript the good parts» предотвращает работу writeln

Вот моя программа:

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 flight declaration ничего не выводится. Для справки, это со страницы 21 книги.

+0

@ Qantas94Heavy Это может быть ответ – karthikr

+0

@ Qantas94Heavy да, наконец, !!! Вау. Итак, я думаю, что код просто не работает, если есть синтаксическая ошибка? Как я могу предотвратить эту проблему в будущем .. я буду начинать исследование отладчиков – user2202911

+0

Однако не используйте 'document.write()'. – SLaks

ответ

3

После "LAX" запятая отсутствует. Это одна из неудач стиля кодирования Крокфорда - пропуская запятую довольно трудно заметить. Существуют альтернативные стили кодирования, которые решают эту проблему (например, запятую), но у них есть свои проблемы.

Кроме того, document.writeln является потенциально опасным и не рекомендуется использовать - если вы хотите, чтобы проверить, что что-то работает, откройте консоль (F12 в Chrome, Firebug (расширение Firefox, который лучше, чем родной один) и IE, Ctrl + Shift + K для родной консоли Firefox).

Firebug console Source with error line highlighted

ошибка говорит вам, что до или в строке 20 является ошибкой - так как нет запятой, он ожидает конец литерала объекта (путем прекращения с }), так что это дает ошибка в строке 20.

Смежные вопросы