js
-
[TIL] 자바스크립트 thisIT 지식 2021. 12. 6. 14:37
프론트엔드 개발자 면접을 보다보면 this에 관한 질문을 많이 받습니다. 혹은 객체지향 프로그래밍을 작성할 때 class 문법을 활용하다보면 this를 많이 활용하게 되는데요, 오늘은 이 this가 도대체 어떤 것인지에 대해 알아보도록 하겠습니다. 1. this가 도대체 뭐죠? 대부분의 경우 this의 값은 함수를 호출한 방법에 의해 결정됩니다. 실행중에는 할당으로 설정할 수 없고 함수를 호출할 때 마다 다를 수 있습니다. ES5는 함수를 어떻게 호출했는지 상관하지 않고 this 값을 설정할 수 있는 bind 메서드를 도입했고, ES2015는 스스로의 this 바인딩을 제공하지 않는 화살표 함수를 추가했습니다(이는 렉시컬 컨텍스트안의 this값을 유지합니다). MDN에 나와있는 내용을 보면 너무 추상적이..
-
깊은 복사와 얕은 복사에 대한 고찰(?)IT 지식 2021. 4. 25. 19:21
이번에 회사 프로젝트를 진행하던 중 리덕스에서 오류가 발생했습니다. 제가 readonly형식의 데이터에 다른 데이터를 덧씌우려고 했다는 오류 메세지였습니다. 그래서 이를 해결하기 위해 여러 자료를 찾아보던 중 제가 리덕스 상태 값에 얕은 복사를 한 데이터를 덮어 씌우려고 해서 발생한 에러임을 알게 되었습니다. 그래서 이 오류를 정리할 겸 해서 오늘은 깊은 복사와 얕은 복사에 대해서 알아보도록 하겠습니다. 0. 객체 복사 오늘의 주제를 말하기에 앞서 오늘 말하는 복사라는 행위는 객체를 복사하는 행위임을 말씀드립니다. 자바스크립트에서 배열은 특수한 형태의 객체이기 때문에, 배열의 복사 역시 오늘의 주제 범위에 포함됨을 말씀드립니다. 1. 얕은 복사란? 얕은 복사란 객체를 복사할 때 원래 값과 복사된 값이 같..
-
[TIL]Day 22. Code Kata 내용 정리(201006)IT 지식 2020. 10. 6. 11:25
이번 포스팅은 Code Kate에 대한 내용을 정리해보도록 하겠습니다. * 문제 reverse 함수에 정수인 숫자를 인자로 받습니다. 그 숫자를 뒤집어서 return해주세요. x: 숫자 return: 뒤집어진 숫자를 반환! 예를 들어, x: 1234 return: 4321 x: -1234 return: -4321 x: 1230 return: 321 더보기 해결책: Number형태의 자료형은 그 단일 문자를 split 할 수 없기 때문에, 우선 각각의 숫자들을 구분하기 위해 string 자료형으로 바꿔줘야 합니다. 그 후 string화 된 자료형을 split 메소드를 이용하여 각각의 구분된 배열로 바꾼 후 -> reverse 메소드를 이용하여 배열의 순서를 바꾸고 -> join 메소드를 이용하여 각각의 문..