jslint가 왜이 점에 대해 불평합니까 ??Jslint가 배열을 반복하는 것에 대해 불평합니다
for (var i = 0; i < array.length; i ++) {
console.log(array[i]);
}
오류 메시지는 다음과 같습니다
Move 'var' declarations to the top of the function.
이 필요한 것보다 더 넓은 범위에서 변수를 선언 나에게 아무 의미 (블록 BTW 각각 자신의 sope을 가지고 있습니까?).
무엇이 잘못 되었나요? 이것이 jslint의 변덕이라면 어떻게 든이 특별한 경우 만 무시할 수 있을까요?
'for' 루프는 자체 범위를 가지지 않으며 함수 만 수행합니다. JavaScript에는 블록 범위가 없으며 어휘 범위 만 있습니다. 여기에 몇 가지 내용이 있습니다 : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions. 그리고 기술적으로 JSHint가 제안한 이유는'i' 선언이 범위 상단에 ** 올라와 있기 때문입니다. 이에 대한 내용은 다음에서 볼 수 있습니다. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var#var_hoisting – Ian
@Ian 'let'이 있습니다. – simonzack
@imonzack 네 말이 맞아. 불행하게도 그것은 ES6에 있으며 많은 브라우저에서 지원되지 않습니다. 댓글을 달거나 답변하고 설명해 주셔서 감사합니다. 그리고 JSLint가 그것을 인식 할 수 없을 때 실제로 도움이되지 않습니다. – Ian