Javascript와 반복문

박성룡 ( Andrew park )
3 min readApr 20, 2019

--

자바스크립트를 처음부터 다시 생각하고 공부해 보려고 한다.

자바스크립트에서 반복문이란 무엇일까?

프로그래밍 언어에서 반복문이란 특정 구문을 여러번 반복해서 처리하는 방법을 이야기 한다.

이를 구현하기 위해 대부분의 언어에서는 for 나 while 문이 존재한다.

Javascript 에서는 대표적인 반복문으로 for와 while 이 존재한다.

for (초기값; 조건; 반복) { 구문 } 으로 구성되어 있다.
while (조건) { 구문 } 으로 구성되어 있다.
do { 구문 } while (조건) 으로 구성되어 있다.

반복문의 초기 부분을 제외한 모든 부분은 반복된다.

때문에 만약 for(var i=1; i < arr.length; i++) 으로 작성했다면, arr.length을 호출하고 값을 비교하는 것을 반복한다.

이 작업을 줄이기 위해서 한번만 참조해도 되는 arr.length 값을 임시변수에 저장해 두고 사용하여 작업량을 줄일 수 있다.

var length = arr.length;
for(var i=1; i < length; i++)

조건문이 계속 True 일 경우 무한하게 작업이 진행된다. 이를 무한 루프라고 부른다.

싱글 스레드인 Javascript의 무한 루프의 가장 큰 문제는 스크립트 동작 중에는 브라우저 렌더링 작업 및 어떠한 행위도 동작되지 않는다.

만약 중간에 반복문을 멈춰야 한다면, break 나 return 을 이용해서 반복문을 강제로 빠져나갈 수 있다.

for in 과 for of

자바스크립트에는 특별한 반복문이 존재하다.

for 문 안에 in 과 of 를 사용할 수 있다.

for in

for( property in object ) 은 객체의 심볼이 아닌 열거 [[Enumerable]] 가능한 모든 property 을 반복 할 수 있다.

Enumerable 은 Object.defineProperty 으로 설정이 가능하다.
Array는 Array Iterator 를 반복한다.

String은 ArrayLike 이기 때문에, Array 처럼 처리될 수 있다.

ArrayLike는 Array 처럼 index (a[0]) 로 접근이 가능하고, length 속성이 존재한다. 하지만 Array 객체가 아니기 때문에 prototype 은 Array 를 참조하지는 않는다.

for of

for of 은 반복 가능한 객체 (iterables)을 반복한다.

iterables 에는 String, Array, TypedArray, Map, Set 이 있다.

Array 객체

Javascript에서는 배열 객체를 반복하는 메서드가 존재한다.

Array.prototype.forEach 으로 배열을 반복할 수 있다.

arr의 forEach 동작 중 arr의 참조 객체가 변경되면, forEach의 값은 이전 참조 객체 값으로 유지 되지만, arr의 객체의 값이 변경된다면 forEach의 값은 변경된 값이 전달된다.

--

--

박성룡 ( Andrew park )
박성룡 ( Andrew park )

Written by 박성룡 ( Andrew park )

Javascript is great We may not be great

No responses yet