考虑以下代码:
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
在第二个 return 语句中是used out of scope.
.
但为什么?AFAIK,JavaScript 具有词法作用域/函数作用域。由于没有嵌套函数,代码应该是完全有效的。还是我错过了什么?