간단한 JS 코드를 사용해 보았습니다. 루프 내에서 루프 변수를 선언하려면 var
키워드를 사용해야한다는 것을 알고 있었고 글로벌 변수 선언을 피하기 위해 루프는 for
이라고 말합니다. 이것은 인라인 오브젝트에 for
루프의 루프 변수가 지향 방법으로 (사실은 내가 알고, 일 필요는 없다)JS 루프 가변 범위
var a = [1, 2, 3, 4, 5, 6];
for (var i = 0; i < a.length; i++)
document.write(a[i]); //123456
document.write(i); //6
되지 않습니다 : 그러나 나는 루프 변수가 너무 루프의 실행 후 존재한다는 것을 깨달았 개념이 작동합니다. JavaScript와 OO 언어를 비교하지 말아야한다는 것을 알고 있습니다. 그러나 나는 단지 OO 언어의 행동이 더 낫다는 것을 추측하고있다.
이 코드를 <script>
태그에 직접 입력하면 실제적으로 원치 않는 전역 변수에 루프 변수가 추가됩니다. 그런가요? 아니면 내가 잘못 생각하고 있니?
우리는 명시 적 기능의 범위를 작성하여 같은 동작을 얻을 수 있습니다/
var a1 = [1, 2, 3, 4, 5, 6];
(function() {
for (var i1 = 0; i1 < a.length; i1++)
document.write(a[i1]); //123456
})();
document.write(i1); //undefined
를하지만 표준 방법은 생산에 따라? 다른 어떤 일들을 할 수 있습니까?
for 루프와 그 범위 지정 동작은 OOP과 어떤 관련이 있습니까? – Bergi
@Bergi 음, for (int i = 0; i
Mahesha999
JavaScript (및 많은 다른 언어)에는 블록 범위가 없습니다. 그리고 그것은 언어가 어떤 OOP 원칙을 따르는 지 여부와 아무 관련이 없습니다. – Bergi