eslint/no-loop-func Pedantic
작동 방식
루프 문 내부에서 외부 스코프에 선언된 변수를 참조하는 함수 선언 및 표현식을 금지합니다. 이러한 변수는 반복 중에 값이 변경될 수 있습니다.
왜 문제가 되는가?
루프 내부에 함수를 작성하는 것은 자바스크립트의 클로저 동작 방식 때문에 오류를 유발하기 쉽습니다. 함수는 변수를 값으로 캡처하는 것이 아니라 참조로 캡처합니다. var를 사용할 경우, 함수 범위이기 때문에 모든 반복이 동일한 변수 바인딩을 공유하게 되어 예기치 않은 동작이 발생합니다.
예시
이 규칙에 부적절한 코드 예시:
js
for (var i = 0; i < 10; i++) {
funcs[i] = function () {
return i;
};
}이 규칙에 적절한 코드 예시:
js
for (let i = 0; i < 10; i++) {
funcs[i] = function () {
return i;
};
}사용 방법
구성 파일이나 명령줄 인터페이스에서 이 규칙을 활성화하려면 다음을 사용할 수 있습니다:
json
{
"rules": {
"no-loop-func": "error"
}
}bash
oxlint --deny no-loop-func