documentation에있는 funcscope
옵션의 설명에 따라 JSHint는 "의도 된 범위"에 선언 된 변수의 유용성을 JSHint가 인식합니다. 구조체 등을 제어 할 수 있습니다 (실제로 JS의 함수 내에서 하나의 범위 만 있음).JSHint는 변수에 대해 "의도 된 범위"를 인식하지 않습니다.
왜 i
이 여러 번 선언되었다고 다음과 같은 이유로 오류가 발생합니까?
if (condition) {
var i = 1;
//
}
else {
var i = 2;
//
}
funcscope
을 true 또는 false로 설정하면 도움이되지 않습니다. 이 오류를 억제하는 방법이 있습니까? . 코드 덩어리 주위에 이동해야 할 때
(나는 "논리적/구성"변수 범위를 가지고, 그들이 요구되는 경우에 가까운 변수를 "정의"와 같은 저를 도와줍니다
는편집 :. 나에 대해 알고 변수 hoisting.하지만 더글러스 Crockford의 의견을 모두 구독에 동의하지 않습니다. 코드 조각을 이동해야 할 때 코드를 읽기 어렵게하고 리팩토링하기 어렵게 만듭니다. JSHint 홈페이지에서 funcscope
의 설명서를 읽으십시오. 의도 된 범위에 대해서도 말하고 있습니다. 정확히 제가 언급 한 내용입니다. 이 컨텍스트에서)
가변 호이 스팅에 대해 잘 알고 있지만 원본 게시글의 의미를 명확히하려고 노력했습니다. –
나는 당신이 요구하는 것을 이해합니다. 내가 말하고자하는 것은 _intended scope_에 대한 유효한 유스 케이스가 없다는 것입니다. 동일한 변수를 두 번 선언하는 것은 프로그래밍 스타일의 문제 만이 아니라 언어를 오용하고있는 것입니다. – Mathletics
흠, 나는 네가하는 말을 좀 얻는다. 그러나 제 관점을 더 강조하기 위해, 제가하고있는 일에 대한 실용적인 문제는 무엇입니까, 보행 보조기는 제쳐두고. OTH, 내가 이것을하지 않으면 같은 생각을 표현할 때조차도 두 가지 다른 이름을 사용해야합니다. 또는 "상위"범위에서 "공통"변수를 정의하면 원래 게시물에서 언급 한 문제가 발생합니다. –