>  기사  >  웹 프론트엔드  >  루프 변수의 Javascript 선언을 작성하는 네 가지 일반적인 방법에 대한 간략한 분석_기본 지식

루프 변수의 Javascript 선언을 작성하는 네 가지 일반적인 방법에 대한 간략한 분석_기본 지식

WBOY
WBOY원래의
2016-05-16 15:36:381124검색

Javascript의 루프 변수 선언은 어디에 배치해야 하나요?

습관 1: 선언하지 않고 직접 사용

function loop(arr) { 
 for (i = 0; i < arr.length; i++) { 
  // do something 
 } 
} 

매우 위험한 사용 습관입니다. 일반적으로 루프 변수는 창 개체의 속성이 되어 전역적으로 사용되며 이는 프로그램의 일반적인 논리 구현에 영향을 미칠 가능성이 높습니다.
엄격 모드에서 변수를 선언하지 않고 직접 할당하면 예외가 직접 발생한다는 점을 언급하는 것이 중요합니다. ecma-262 표준 부록 C의 한 구절을 인용합니다:
"선언되지 않은 식별자 또는 해결 불가능한 참조에 대한 할당은 전역 객체에 속성을 생성하지 않습니다. 엄격 모드 코드 내에서 단순 할당이 발생하면 LeftHandSide는 해결 불가능한 참조로 평가되어서는 안 됩니다. 그렇게 하면 ReferenceError 예외가 발생합니다(6.2 .3.2)."
즉, 선언되지 않은 변수가 다시 사용되면 ReferenceError 예외가 발생합니다.

습관 2: for 루프의 초기 명령문 블록에 넣고

을 반복적으로 선언합니다.
function loop(arr) { 
 for (var i = 0; i < arr.length; i++ ){ 
  // do someting 
 } 
 // console.log(i); 
 for (var i = 0; i < arr.length; i++ ){ 
  // do something else 
 } 
} 

이 방법이 가장 안전하고 표준화된 것 같습니다. C 및 Java에서 프런트 엔드 개발로 전환하는 많은 학생들이 이러한 작성 방법을 선호합니다. 실제로 이는 Javascript의 중요한 개념에 대한 오해 때문일 수 있습니다. 변수. C 및 Java와 달리 Javascript에는 실제 블록 수준 범위가 없습니다. 즉, 첫 번째 루프가 끝난 후 console.log(i)는 정의되지 않은 내용을 인쇄하거나 ReferenceError 예외를 발생시키지 않지만 정상적으로 인쇄됩니다. 도착 길이.
물론 이러한 작성 방식은 아름답다는 것 외에는 거의 의미가 없지만 오랫동안 호환되었으며 어떠한 사양도 위반하지 않습니다. ECMA 표준은 특정 범위에서 동일한 변수의 반복 선언을 금지하지 않습니다.

습관 3: 다른 변수와 함께 함수 상단의

을 중앙에서 정의하세요.
function loop(arr) { 
 var var1; 
 var var2; 
 var i; 
 
 for (i = 0; i < arr.length; i++) { 
  // do something 
 } 
} 

이 c89와 같은 변수 정의 방법은 Javascript에서 거의 완벽합니다. Javascript가 블록 수준 범위를 지원한다는 오해를 일으키지 않으며 전역 범위를 오염시키지 않으며 표준 및 사양을 위반하지 않는다는 단점이 있습니다. 루프 변수와 루프 본문이 멀리 떨어져 있을 수 있습니다. 더 많은 코드를 사용하지 않고는 주요 주류 브라우저 제조업체가 ECMAScript 6에서 let 키워드를 구현하기를 기다리는 것 외에는 이 문제에 대한 더 나은 해결책이 없는 것 같습니다.

습관 4: 루프 코드를 IIFE로 캡슐화하세요

function loop(arr) { 
 (function () { 
  for (var i = 0; i < arr.length; i++) { 
   // do something 
  } 
 })(); 
} 

마지막 습관은 IIFE(Immediately-Invoked Function Expression)로 프론트엔드 프로그래머들에게 친숙한 것으로 함수를 즉시 실행한다는 의미입니다. 이 방식의 가장 큰 단점은 작성하기가 상대적으로 번거롭고 불필요한 성능 손실(매우 작음)이 있지만 호환성 및 다양한 표준 준수 측면에서 좋은 성능을 발휘한다는 것입니다. 개발자는 너무 번거롭지 않다면 이 접근 방식을 사용할 수 있습니다.

위는 Javascript의 네 가지 일반적인 루프 변수 정의의 작성 습관에 대한 간략한 소개 및 분석입니다. 각각에는 고유한 장단점이 있습니다. 독자는 자신의 필요에 따라 가장 적합한 것을 선택할 수 있습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.