Рассмотрим следующий фрагмент кода:
function processParagraph(paragraph) {
if (paragraph.charAt(0) === '%') {
for (var level = 0; paragraph.charAt(level) === '%'; level++) {}
return {
type: 'h' + level,
content: paragraph.slice(level + 1)
};
}
return {
type: 'p' + level,
content: paragraph
};
}
Когда я проверяю это с JSLint, он жалуется, что level
во втором операторе возврата - used out of scope.
.
Но почему? AFAIK, JavaScript имеет лексическую область видимости / функции. Поскольку нет вложенных функций, код должен быть совершенно корректным. Или я что-то упустил?