Ответ Марко выше является правильным ответом. Я обращаюсь к следующему утверждению и тому, как вы можете проверить это для себя:
если условие не работает должным образом
Вы можете использовать отладчик, чтобы понять вашу программу. Поскольку вы используете узел, вы можете проверить это прямо из командной строки.
- Поместите оператор
debugger
над строкой кода, которая вас интересует. Это устанавливает точку останова.
- пробег
node inspect <filename>
- REPL открывается в командной оболочке, начиная со строки 1 вашего файла. Чтобы достичь точки останова, просто введите
c
или cont
в командной строке
Вы сейчас здесь:
> 3 debugger
4 if (typeof ticker === undefined) {
5 ticker = body
debug> _
Теперь вы можете запускать выражения прямо в REPL, чтобы увидеть, как узел будет оценивать их во время выполнения:
debug> typeof ticker
'undefined' // aha, there's our programming error
debug> typeof ticker === undefined
false
debug> typeof ticker === 'undefined' // it works
true
Чтобы дополнительно проверить поток вашей программы, введите next
в REPL, чтобы построчно увидеть, куда программа движется.
При желании вы можете использовать интерфейс chrome для отладки:
- пробег
node --inspect-brk <filename>
- открыть хром до
chrome://inspect
- нажмите
Open dedicated devTools for node
Интерфейс Chrome позволяет подсветить или навести курсор на переменные и выражения, чтобы увидеть их значение.