본문 바로가기

전체 글50

모던 자바스크립트 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.
모던 자바스크립트 Deep Dive - 스코프 스코프 스코프란 식별자가 유효한 범위를 뜻한다. 여기서 식별자는 변수, 함수, 클래스 이름 등을 뜻 한다. 우선 스코프는 선언된 위치에 따라 크게 지역 스코프, 전역 스코프로 나뉜다. 지역 스코프 지역이란 함수 몸체 내부를 뜻한다. 그러므로 함수 내부 또는 블록 내부에서 변수를 선언하면 지역 스코프를 가지는 지역 변수가 되며 지역 변수는 자신의 지역 스코프와 하위 지역 스코프에서만 참조 가능하다. 전역 스코프 전역이란 코드의 가장 바깥쪽 영역을 말한다. 그러므로 전역에 변수를 선언하면 전역 스코프를 가지는 전역 변수가 되며 전역 변수는 어디서든 참조 가능하다. var x = 'global' // 전역 스코프, 전역 변수 function outer(){ // 지역 스코프 var z = 'local' // .. 2022. 12. 8.