次のコードを検討してください。
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
、2 番目の return ステートメントがused out of scope.
.
しかし、なぜ?私の知る限り、JavaScriptにはレキシカルスコープ/関数スコープがあります。ネストされた関数がないため、コードは完全に有効である必要があります。または、何か不足していますか?