본문 바로가기

전체 글65

초보 운전 기록.. 운전 시작한지 한달 반 정도 되었다. 익숙해진 부분도 있고 아직 미숙한 부분도 많은데 한 번 적으며 정리해보고자 한다. 총 네 가지로 나눌 수 있을 거 같다(주차는 너무 어렵다...). 차량 운전 도로/신호 길 -------- 1. 차량 주유 시 시동 끄기 시동 끄지 않고 사이드 미러 펴기/접기 사이드/백 미러 및 차량 유리 깨끗히 유지 시동걸 때 급 2. 운전 앞차가 급정거 혹은 차선 변경할 때 절대 핸들 돌리지 말고 브레이크만 누르기 멀리 보고 운전 네비게이션에서 길이 아닌 좌측 상단 안내 우선적으로 보기 우천 시 도로 상황에 따라 타이어가 미끄러질 수 있기 때문에 안전 거리 필수 야간 운전 시 3. 도로/신호 좌회전 차선이 2개일 경우 차선 그대로 진입(변경 금지) 비보호 좌회전시 직진 우선(빨간불.. 2023. 4. 25.
객체 병합 앞서 전개구문[1]을 통한 객체 병합에 대해 살펴보았다. 다음 예를 살펴보자. 분명히 복사를 했는데, 기존 객체(store)의 변경이 복사본(copy)에도 영향을 미치고 있다. 이는 전개구문을 통한 복사가 얕은 복사[3]이기 때문이다. 따라서 위처럼 2-Depth의 요소를 재할당해주는 방식으로 복사해야 한다. 외에도 JSON 내장 객체나 lodash 라이브러리를 통해 깊은 복사를 할 수 있다. ------ 1. 원 객체를 변화시키지 않기 위해[2] 전개구문을 사용한다. 2. 불변성을 위해 배열의 경우 concat, filter, map 등의 함수를 이용한다. 3. 얕은 복사의 방법에는 전개구문 외 Object.assign을 사용할 수도 있다. 2023. 4. 11.
배열의 특성 자바스크립트에서는 배열이라는 타입이 존재하지 않으며, 배열의 타입을 찍어보면 객체가 나온다. 위에서 보다시피, 자바스크립트의 배열은 인덱스와 length 속성이 있는 특수한 객체이다. 객체다 보니[1], 숫자 이외의 속성을 추가할 수 있으나 length는 변하지 않았음을 확인할 수 있다. for-in으로 출력을 해보면 배열이 아닌 값까지 출력되었음을 확인할 수 있다[2]. 그래서 위와 같이 for-of 혹은 forEach[3][4]를 사용하는 게 좋다. 한편 유사배열이라는 것이 있다. 아래와 같이 배열처럼 인덱스를 통한 접근이 가능하다. 배열과 유사한 생김새를 지녔지만, 유사배열은 배열이 아니기 때문에 forEach 같은 배열의 메소드를 사용할 수 없다. 또한 유사배열은 이터러블[5]도 아니기 때문에 f.. 2023. 3. 18.
클로저의 활용 다음은 클로저의 대표적 예인 카운터다[1]. counter 함수를 호출할 때, counterClosure 컨텍스트[2]에 count와 changeCount가 담긴 스코프 체인[3]이 생성된다. 그러므로 counterClosure에서 count로의 접근이 가능해지게 된다. 이런 식으로 비공개 변수를 만들어 활용할 수 있다. 위 코드[4]도 마찬가지로 클로저를 활용한 예제다. 단, 함수 호출할 때마다 해당 함수에 대한 실행 컨텍스트가 생성된다. 따라서 counter1과 counter2는 서로 독립적이다. ----- 1. 다음 글에서 코드를 발췌했다. 2. 실행 컨텍스트란 코드 흐름이나 함수 동작에 필요한 환경 정보가 담긴 객체를 지칭한다. 3. 스코프 체인은 해당 코드의 유효 범위 안에 있는 변수를 정의하는.. 2023. 3. 15.