본문 바로가기

전체 글51

모던 자바스크립트 Deep Dive - this 자바스크립트 this에 대해 정리합니다. this 정의 - 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수다. - this를 통해 자신이 속한 객체 또는 자신이 생성할 인스턴스의 프로퍼티나 메서들를 참조할 수 있다. this 사용 자바스크립트에서 this 바인딩은 함수 호출 방식에 의해 동적으로 결정된다. - 전역에서 this this는 어디서든 참조 가능하다. 그리고 전역에서의 this는 전역 객체 window를 가리킨다. console.log(this) // window - 일반 함수에서 this 일반 함수에서 this를 사용 시 전역 객체 window를 가리킨다. 하지만 strict mode일 경우 undefined가 바인딩된다. 메서드 내부에서 일반함수로 호출되면 this.. 2022. 12. 25.
모던 자바스크립트 Deep Dive - 객체 리터럴 객체 리터럴 - 자바스크립트는 원시 값을 제외한 나머지 값(함수, 배열, 정규 표현식 등)은 모두 객체이다. - 객체타입은 다양한 타입의 값을 하나의 단위로 구성한 복합적인 자료구조이다. - 객체는 0개 이상의 프로퍼티로 구성된 집합이며 키와 값으로 구성된다. - 모든 값은 프로퍼티 값이 될 수 있으며 함수도 가능하다. (함수가 프로퍼티의 값인 경우 메서드라고 부른다.) - {...} 중괄호 안에 프로퍼티를 정의 하며, 나열할 때는 쉼표(,)로 구분한다. var person = { name: "Lee", // 프로퍼티 sayHello: function () { // 메서드 console.log("Hello ~~") } console.log(typeof person) // object console.log.. 2022. 12. 25.
모던 자바스크립트 Deep Dive - 실행 컨텍스트 실행 컨텍스트 실행 컨텍스트를 알면 호이스팅과 클로저, 코드 실행 순서를 이해하는데 도움이 되기 때문에 정리합니다. 소스 코드의 타입 - 전역 코드 전역 변수를 관리하기 위해 최상위 스코프인 전역 스코프를 생성한다. - 함수 코드 지역 스코프를 생성하고 지역변수, 매개변수, arguments객체를 관리한다. - eval 코드 엄격 모드에서 자신만의 독자적인 스코프를 생성한다. - 모듈 코드 모듈별로 독립적인 모듈 스코프를 생성한다. 소스코드(전역, 함수, eval, 모듈) → 코드 평가 → 실행 컨텍스트(전역, 함수, eval, 모듈) 소스 코드의 평가와 실행 자바 스크립트 엔진은 소스코드를 2개의 과정으로 나누어 처리한다 ( 소스코드 평가, 소스코드 실행 ) - 소스 코드 평가 실행 컨텍스트 생성하고 .. 2022. 12. 11.
짝지어 제거하기 - LV. 2 https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 예시) baabaa -> bbaa -> aa -> '' 위의 예시처럼 문자열에서 두 개의 같은 문자가 붙어 있는 경우 제거한 뒤 앞뒤로 문자열을 붙이는 문제입니다. 그리고 모두 제거가 된다면 1을 리턴하고 아니라면 0을 리턴합니다 이 문제는 간단하게 stack을 사용하여 풀수 있는 문제입니다. 문자열을 순회하면서 stack에 문자를 push 합니다. 그리고 stack의 길이가 0 이상일때, 가장 .. 2022. 12. 10.
귤 고르기 - LV. 2 https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이 문제는 귤 k개를 고를 때 크기가 서로 다른 종류의 수의 최솟값을 구하는 문제 입니다. 그렇기 때문에 map을 이용해 각 크기별 개수를 저장하고, 개수를 기준으로 내림 차순 정렬하여 카운팅 해주면 되는 문제 입니다. function solution(k, tangerine) { const map = new Map() for(const size of tangerine){ map.set(size,.. 2022. 12. 10.
모던 자바스크립트 Deep Dive - 호이스팅, var, let, const var, let, const 각각의 특징과 호이스팅에 관해서 정리합니다. var - 변수 중복 선언이 가능하다 var a = 'a' console.log(a) // 'a' var a = 'aa' console.log(a) // 'aa' - 함수 레벨 스코프를 가진다 var 키워드를 사용하여 선언한 변수는 함수 내부에서 선언한 게 아니라면 전역 스코프를 가진 전역 변수이다. 함수 레벨 스코프란? 함수의 코드 블록만을 지역 스코프로 인정하며 함수 외부에서 선언한 변수는 전역 스코프를 가진다. - 변수 호이스팅 var 키워드로 선언한 변수는 호이스팅 과정에서 선언과 초기화가 동신에 진행되며 이때 undefined로 초기화된다. 그렇기 때문에 변수 선언 전에 호출하게 되면 undefined가 출력된다. cons.. 2022. 12. 9.