자바스크립트에서 데이터를 다루는 과정이 시작됐다.
가장 기본적인 배열과 객체에 대해서 다루게 되었는데
이전엔 따라하며 코딩을 배웠던 때라 제대로 알고 넘어가진 못했는데
어떻게 구동되는지를 알고 보니 다르게 보이는 느낌이다.
for... of
, for... in
배열과 객체에서 반복문을 사용하는 방법에 대해
이전엔 단순히 배열을 반복시키는거구나 하고 넘어갔던 부분이다.
for... of
의 경우 배열에서는 사용할 수 있지만
객체에서는 사용할 수 없다.
배열은 순서대로 나열된 값들을 하나하나 불러올 수 있기 때문이다.
for... in
의 객체의 키를 가져오게 되며
배열에서 사용 시 요소의 인덱스값을 가져온다.
객체에서 key값을 선택할 때 사용하는 방법이다.
이전엔 점 표기법을 주로 사용했었는데
사실 이걸 주로 사용하는 이유를 잘 알지 못했었다.
두가지 방식의 작성법은 아래와 같이 사용할 수 있다.
// Dot notation
obj.property;
// Braket notation
obj.['property']
그럼 두개의 방식을 어느 상황에 써야되는걸까?
obj.property
의 경우 값이 유동적이지 않은 상황에서 사용할 수 있다.
유동적이지 않다는것의 의미는 좀 더 아래에서 설명해주겠다.
내가 생각했을때 점 표기법을 자주 사용하는것은
단순히 가독성이 좋기 때문이라고 생각한다.
그럼 왜 괄호 표기법을 사용하는걸까?
점 표기법과 괄호 표기법의 가장 큰 차이는 변수의 할당에 있다
위에서 예를든것과 같이 obj['property']
에는 문자열이 들어가있다.
하지만 여기서 문자열이 아니게 작성하면
obj[property]
이건 변수가 되는 것이다.
때문에 객체의 key값이 변수로 활용되어 유동적으로 사용한다면
점 표기법은 변수로 활용할 수 없어 유동적이지 않으니
괄호 표기법을 사용하는 것이 좋다.