라벨이 반복문인 게시물 표시

[JavaScript] break, continue

break break문 은 무한루프에서 주로 사용한다. 반복문에서 특정 if조건을 만족하면 break가 있는 지점에서 해당 반복문을 종료 하고 반복문 블록에서 벗어나게 된다.  반복문이 여러개 중첩된 경우 break를 사용하면 현재 위치한 루프 하나만 벗어나게되는데  중첩된 이중 이상의 반복문 전체를 벗어나고자하는 경우 최상위 반복문에 이름을 부여하여 즉, 레이블을 작성하여 중첩된 반복문 전체를 벗어날 수 있게 해준다. ex) Loop1 : for( ... ) {                          for( ... ) {                              ~~~~~~~~                              break Loop1;                          }                     } 위와 같이 사용하는 경우 break Loop1; 문장을 통해 중첩된 모든 반복문을 벗어날 수 있다. 여기서 Loop1을 반복문 레이블이라고 부른다. continue continue문은 반복문에서 특정 if조건의 해당 부분을 중간에 건너뛰고 반복문을 실행한다.  값이 초기화되는것은 아니며 진행중이던 해당 반복문만 건너뛰고 반복문을 계속해서 실행한다.  정밀한 제어 구조를 만들때 사용한다. continue로 해당 반복구간을 건너뛰면 반복문에 작성해놓은 증감연산자로 이동하여 작성해놓은 변수의 값을 증가하거나 감소하고나서 반복문을 이어서 다시 수행한다. break문 에서 알아봤던 반복문 레이블은 continue문 에서도 사용가능하다. 주의사항 break와 continue 문의 경우 ?(물음표) 연산자와 함께 사용이 불가능하며 반복문 내에서만 사용할 수 있다. 레이블을 사용하여 마음대로 원하는곳으로 이동할 수 없다. 레이블은 반드시 break나 continue 위에 있어야한다.

[JavaScript] for in과 for of의 차이점

이미지
요약하면 for in : 객체에 사용 (객체의 모든 열거 가능한 속성에 대해 반복) for of : 배열에 사용 ([Symbol.iterator] 속성을 가지는 컬렉션 전용) for in은 보통 객체를 순회하면서 값을 출력할때사용한다. 배열도 객체이기 때문에 위의 코드에서도 순회를하며 값을 출력한다. 하지만 이러한 for in을 사용할 경우 위의 코드와 같이 자신이 가지고있는 않은 값들인 상위에서 추가되어있는 값들까지 출력하기때문에 문제를 발생시킬 수 있다. 즉 출력하고자 하지 않았던 다른 연관되어 있는 값들이 출력될 수 있다.  for in을 대신하여 for of를 사용하게되면 상위에 값들이 추가되어있다 하더라도 자신을 제외한 나머지 객체들에 대해서는 값을 출력하지 않는다. 추가적으로 for in 과 달리 for of는 문자열을 순회하며 값을 출력할 수 있다. 위와같은 문제점들을 고려해서 배열에서는 for in을 사용하기보다는 for of를 사용하도록 한다.

반복문의 종류

배열에는 다양한 반복문이 존재한다. 대부분의 반복문은 배열을 순회할때 사용되는데 이때 사용되는 다양한 반복문을을 나열해보고자한다. 반복문의 종류들에는 아래의 5가지정도가있다. 1번. for 문 2번. while 문 3번. foreach 4번. for in 5번. for of 4번 .for in  은 객체를 순회할때 많이 사용되며 배열에서 사용시 문제점이 발생하는데 예를들어서 기존에 배열이 존재하고 Array.prototype.getIndex = function(){}; 코드를 추가한뒤 for in 문을 사용하게되면 기존과 다르게 배열에 function(){}이 추가되게된다. 자신이 가지고있는 배열객체 이외에 prototype을 이용해서 자신의 상위에 추가된 이러한 객체들도 값으로 나타내주는 문제가 발생하므로 배열(array)에서 for in 문을 사용하지 않는것이 좋다. 또한 네이티브에 메서드를 추가해서 확장할경우 또한 문제를 발생시킬 수 있다. 이러한 문제점들을 해결해줄방안으로 출시된 반복문이 5번. for of 이다. 배열 반복문에 for of를 사용할것을 추천한다. 숫자배열만이아닌 문자배열에서도 사용가능하다. foreach의경우 filter와 같이 콜백함수를 순회하면서 결과값을 반환한다. 관련되서  https://seungwon-code.blogspot.com/2019/11/ddd9.html

[JavaScript] while, for (반복문)

# while 반복문 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 변수 초기화 while (조건) {     실행코드;     증감 연산자; } ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ let i = 0; while ( i < 10 ) {     실행코드     i++; } ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ # for 반복문 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ for ( 변수 초기화 ; 조건 ; 증감 연산자) {          실행코드 } ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ for ( let i =0 ; i <= 5 ; i++ ) {          실행코드; } ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ while과 for 반복문의 차이 찾아본바로 현업에서는 횟수 무제한에 while문 사용 횟수 제한에 for문 사용 예를 들어 로그인 모듈을 만들 때 모듈을 두 가지 방법으로 만들 수 있다. 1. 다섯 번의 기회만 주는 모듈 2. 성공할 때까지 기회를 무제한으로 주는 모듈 while과 for 둘 다 무한루프로 사용할 수 있는데 while문의 경우 조건을 true로 주면 무한루프가 가능하며 for문의 경우 괄호안에 작성해야할 (변수초기화; 조건; 증감) 세부분을 작성하지 않고  (;;) 으로만 남겨둘 경우 무한루프로 사용이 가능하다.