본문 바로가기

[자바스크립트] 명시적으로 this를 바인딩하는 방법 (feat 코어 자바스크립트) 들어가며 많은 기업들이 타입스크립트와 nest.js를 활용해서 서버 개발을 하곤 합니다. 취업을 하려면, 타입스크립트와 nest.js를 공부해서 실무를 익히는 것이 중요할 것입니다. 하지만 아직 자바스크립트의 기초도 없는 상태에서 타입스크립트와 nest.js를 공부하는 것이 맞을까 하는 생각이 들었습니다. 빠르게 기술변화를 적응하고, 러닝 커브를 줄이기 위해 빠르게 공부해야 하는 것도 맞겠지만, 그전에 언어의 기반이 되는 자바스크립트부터 제대로 알아야 하지 않을까 하는 생각이 들었습니다. 이 기회에 자바스크립트의 기본에 대해 정리해보고자 합니다. 명시적으로 this를 바인딩하는 방법 this에 별도의 대상을 바인딩하는 방법이 있습니다. 이 방법들에 대해 알아보겠습니다. 1. call 메서드 call 메서..
[자바스크립트] 상황에 따라 달라지는 this (feat 코어 자바스크립트) 들어가며 많은 기업들이 타입 스크립트와 nest.js를 활용해서 서버 개발을 하곤 합니다. 취업을 하려면, 타입 스크립트와 nest.js를 공부해서 실무를 익히는 것이 중요할 것입니다. 하지만 아직 자바스크립트의 기초도 없는 상태에서 타입 스크립트와 nest.js를 공부하는 것이 맞을까 하는 생각이 들었습니다. 빠르게 기술변화를 적응하고, 러닝 커브를 줄이기 위해 빠르게 공부해야 하는 것도 맞겠지만, 그전에 언어의 기반이 되는 자바스크립트부터 제대로 알아야 하지 않을까 하는 생각이 들었습니다. 이 기회에 자바스크립트의 기본에 대해 정리해보고자 합니다. 상황에 따라 달라지는 this 자바스크립트에서 this는 기본적으로 실행 콘텍스트가 생성될 때 함께 결정되며, 함수를 호출할 때 this가 결정됩니다. 지..
[자바스크립트] variable과 LexicalEnvironment (feat 코어 자바스크립트) 들어가며 많은 기업들이 타입스크립트와 nest.js를 활용해서 서버 개발을 하곤 합니다. 취업을 하려면, 타입스크립트와 nest.js를 공부해서 실무를 익히는 것이 중요할 것입니다. 하지만 아직 자바스크립트의 기초도 없는 상태에서 타입스크립트와 nest.js를 공부하는 것이 맞을까 하는 생각이 들었습니다. 빠르게 기술변화를 적응하고, 러닝 커브를 줄이기 위해 빠르게 공부해야 하는 것도 맞겠지만, 그전에 언어의 기반이 되는 자바스크립트부터 제대로 알아야 하지 않을까 하는 생각이 들었습니다. 이 기회에 자바스크립트의 기본에 대해 정리해보고자 합니다. VariableEnvironment 실행 컨텍스트 객체에는 다음과 같은 정보가 담깁니다. VariableEnvironment : 현재 컨텍스트 내의 식별자들에 ..
[자료구조] 연결리스트 with JavaScript 들어가며 연결 리스트를 시작으로 자료구조를 본격적으로 공부하려 합니다. 자료구조를 제대로 공부해야만 훗날 근무를 할 때, 더 좋은 코드를 작성할 수 있다고 믿습니다. 그렇다면 연결 리스트는 무엇인지, 언제, 어떻게 쓰이는지 등을 차근차근 공부해보겠습니다. 연결 리스트는 어디에 쓰일까? 연결 리스트는 자바스크립트에서 어떻게 사용할 수 있을까요? 본격적으로 살펴보기 앞서, 연결 리스트에 대해 간단하게 알아보겠습니다. 연결 리스트는 큐와 비슷하게도 무언가를 기다리기 위해 차례대로 줄을 서 있는 구조라고 생각하면 편할 것 같습니다. 이런 연결 리스트는 웹 브라우저의 history 관리를 할 때 사용됩니다. 웹 브라우저에서 여러 사이트들을 돌아다니면, 방문 history에 방문 기록들이 연결 리스트와 같은 구조로..
[자바스크립트] 실행 컨텍스트란? (feat 코어 자바스크립트) 들어가며 많은 기업들이 타입스크립트와 nest.js를 활용해서 서버 개발을 하곤 합니다. 취업을 하려면, 타입스크립트와 nest.js를 공부해서 실무를 익히는 것이 중요할 것입니다. 하지만 아직 자바스크립트의 기초도 없는 상태에서 타입스크립트와 nest.js를 공부하는 것이 맞을까 하는 생각이 들었습니다. 빠르게 기술변화를 적응하고, 러닝 커브를 줄이기 위해 빠르게 공부해야 하는 것도 맞겠지만, 그전에 언어의 기반이 되는 자바스크립트부터 제대로 알아야 하지 않을까 하는 생각이 들었습니다. 이 기회에 자바스크립트의 기본에 대해 정리해보고자 합니다. 실행 컨텍스트란? 실행 컨텍스트는 실행할 코드에 제공할 환경 정보들을 모아놓은 객체입니다. 실행 컨텍스트는 동일한 환경에 있는 코드들을 실행할 때 필요한 환경 ..
[자바스크립트] undefined와 null (feat 코어 자바스크립트) 들어가며 많은 기업들이 타입스크립트와 nest.js를 활용해서 서버 개발을 하곤 합니다. 취업을 하려면, 타입스크립트와 nest.js를 공부해서 실무를 익히는 것이 중요할 것입니다. 하지만 아직 자바스크립트의 기초도 없는 상태에서 타입스크립트와 nest.js를 공부하는 것이 맞을까 하는 생각이 들었습니다. 빠르게 기술변화를 적응하고, 러닝 커브를 줄이기 위해 빠르게 공부해야 하는 것도 맞겠지만, 그전에 언어의 기반이 되는 자바스크립트부터 제대로 알아야 하지 않을까 하는 생각이 들었습니다. 이 기회에 자바스크립트의 기본에 대해 정리해보고자 합니다. Undefined 자바스크립트의 기본형 데이터에는 undefined, null가 있습니다. undefined과 Null은 의미는 같은 것 같지만 사용하는 목적 ..
[자바스크립트] 불변 객체 (feat 코어 자바스크립트) 들어가며 많은 기업들이 타입스크립트와 nest.js를 활용해서 서버 개발을 하곤 합니다. 취업을 하려면, 타입스크립트와 nest.js를 공부해서 실무를 익히는 것이 중요할 것입니다. 하지만 아직 자바스크립트의 기초도 없는 상태에서 타입스크립트와 nest.js를 공부하는 것이 맞을까 하는 생각이 들었습니다. 빠르게 기술변화를 적응하고, 러닝 커브를 줄이기 위해 빠르게 공부해야 하는 것도 맞겠지만, 그전에 언어의 기반이 되는 자바스크립트부터 제대로 알아야 하지 않을까 하는 생각이 들었습니다. 이 기회에 자바스크립트의 기본에 대해 정리해보고자 합니다. 불변 객체를 만드는 간단한 방법 참조형 데이터는 기본형 데이터와 마찬가지로 데이터 자체를 변경하려고 한다면 데이터는 변하지 않습니다. 하지만 참조형 데이터가 가..
[자바스크립트] 기본형 데이터와 참조형 데이터 (feat 코어 자바스크립트) 들어가며 많은 기업들이 타입스크립트와 nest.js를 활용해서 서버 개발을 하곤 합니다. 취업을 하려면, 타입스크립트와 nest.js를 공부해서 실무를 익히는 것이 중요할 것입니다. 하지만 아직 자바스크립트의 기초도 없는 상태에서 타입스크립트와 nest.js를 공부하는 것이 맞을까 하는 생각이 들었습니다. 빠르게 기술변화를 적응하고, 러닝 커브를 줄이기 위해 빠르게 공부해야 하는 것도 맞겠지만, 그전에 언어의 기반이 되는 자바스크립트부터 제대로 알아야 하지 않을까 하는 생각이 들었습니다. 이 기회에 자바스크립트의 기본에 대해 정리해보고자 합니다. 불변값 기본형 데이터의 숫자, 문자열, boolean, null, undefined, symbol은 모두 불변값입니다. 그중 숫자와 문자열을 예로 들어 불변성의..
[자료구조] 시간복잡도 with JavaScript 들어가며 SOPT에서 프로젝트를 진행하고 있습니다. 한 번은 알고리즘을 활용한 API를 개발했습니다. 그때 제 코드를 본 동료가, 이 코드의 시간 복잡도는 얼마나 되는지 물어봤습니다. 하지만 저는 시간 복잡도라는 것 자체를 몰라서 대답할 수 없었습니다. 만약 코드의 시간 복잡도가 좋지 못하다면, 프로젝트에도 악영향을 줄 수 있다는 것을 처음 깨달았습니다. 더 늦기 전에 시간 복잡도를 반드시 공부해야겠다고 생각했습니다. 보다 더 효율적인 코드를 구성할 수 있도록 노력하고자 시간 복잡도를 공부합니다. 시간 복잡도와 Big-O(빅-오)란? 시간 복잡도는 알고리즘을 처리하는 데 얼마의 시간이 걸리는지 알려줍니다. 이런 알고리즘의 시간 복잡도는 주로 빅-오 표기법을 사용하여 나타냅니다. Big-O(빅-오)란 알고..
[자바스크립트] parseInt와 Number의 차이 들어가며 알고리즘을 공부하면서, 가끔 parseInt를 써야 하는 경우와 Number를 써야 하는 경우는 언제인지 궁금했습니다. 이번 기회에 parseInt와 Number의 차이에 대해 정리해보면서, 언제 각각의 메서드를 사용해야 하는지 알 수 있었으면 좋겠습니다. Number(str) Number 메서드는 문자열을 인자로 받으면 해당 문자열을 숫자로 바꿔줍니다. 아래의 코드는 '1234'라는 문자열을 1234라는 숫자로 형 변환하여 변수 num에 담는 코드입니다. var num = Number('1234'); // 1234 하지만 아래처럼 문자열이 숫자가 아닌 경우 num에는 NaN이 저장됩니다. var num = Number('1000원'); // NaN 만약 소수점은 어떻게 표시가 될까요? 이 경우..