2023/11

모던 자바 스크립트 Deep Dive 를 읽고 정리한 글 입니다. 16. 1 내부 슬롯과 내부 메서드 자바스크립트 엔진의 구현 알고리즘을 설명하기 위해 EXMAScript 사양에서 사용하는 의사 프로퍼티와 의사 메소드 자바스크립트 엔진의 내부 로직이므로 일부를 제외하면 직접적으로 접근, 호출 불가능 const O = {}; o.[[Prototype]]// => Uncaught SyntaxError: Unexpexted token '[' o.__proto__// => Object.prototype 16. 2 프로퍼티 어트리뷰트와 프로퍼티 디스크립터 객체 자바스크립트 엔진은 프로퍼티를 생성할 때 프로퍼티의 상태를 나타내는 프로퍼티 어트리뷰트를 기본값으로 자동 정의 프로퍼티의 상태 프로퍼티의 값, 값의 갱신 ..
머쓱이보다 키 큰 사람 문제 설명 머쓱이는 학교에서 키 순으로 줄을 설 때 몇 번째로 서야 하는지 궁금해졌습니다. 머쓱이네 반 친구들의 키가 담긴 정수 배열 array와 머쓱이의 키 height가 매개변수로 주어질 때, 머쓱이보다 키 큰 사람 수를 return 하도록 solution 함수를 완성해보세요. 제한사항 1 ≤ array의 길이 ≤ 100 1 ≤ height ≤ 200 1 ≤ array의 원소 ≤ 200 입출력 예 array height result [149, 180, 192, 170] 167 3 [180, 120, 140] 190 0 입출력 예 설명 입출력 예 #1 149, 180, 192, 170 중 머쓱이보다 키가 큰 사람은 180, 192, 170으로 세 명입니다. 입출력 예 #2 180..
옹알이 문제 설명 머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ babbling의 길이 ≤ 100 1 ≤ babbling[i]의 길이 ≤ 15 babbling의 각 문자열에서 "aya", "ye", "woo", "ma"는 각각 최대 한 번씩만 등장합니다. 즉, 각 문자열의 가능한 모든 부분 문자열 중에서 "aya", "ye", "woo", "ma"가 한 번씩만 등장합니다. 문자열은 알파벳 ..
세균 증식 문제 설명 어떤 세균은 1시간에 두배만큼 증식한다고 합니다. 처음 세균의 마리수 n 과 경과한 시간 t가 매개변수로 주어질 때 t 시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ n ≤ 10 1 ≤ t ≤ 15 입출력 예 n t result 2 10 2048 7 15 229,376 입출력 예 설명 입출력 예 #1 • 처음엔 2마리, 1시간 후엔 4마리, 2시간 후엔 8마리, ..., 10시간 후엔 2048마리가 됩니다. 따라서 2048을 return합니다. 입출력 예 #2 • 처음엔 7마리, 1시간 후엔 14마리, 2시간 후엔 28마리, ..., 15시간 후엔 229376마리가 됩니다. 따라서 229,376을 return합니다. 코드 class So..
모던 자바 스크립트 Deep Dive 를 읽고 정리한 글 입니다. 15. 1 var 키워드로 선언한 변수의 문제점(특징) 변수 중복 선언 허용 var 키워드로 선언한 변수를 중복 선언하면 초기화문(변수 선언과 동시에 초기값을 할당하는 문) 유무에 따라 동작 동일한 이름의 변수를 중복 선언하며 값을 할당한다면 기존 변수 값이 변경 초기화문이 있는 변수 선언문 : var 키워드가 없는 것처럼 동작 초기화문이 없는 변수 선언문 : 무시(에러발생하지 않음) // var 키워드로 선언된 변수는 같은 스코프 내에서 중복 선언 허용 var x = 1; var y = 1; var x = 100;// 초기화문이 있는 변수 선언문 : var 키워드가 없는 것처럼 동작 var y;// 초기화문이 없는 변선 선언문 : 무시 ..
0 떼기 문제 설명 정수로 이루어진 문자열 n_str이 주어질 때, n_str의 가장 왼쪽에 처음으로 등장하는 0들을 뗀 문자열을 return하도록 solution 함수를 완성해주세요. 제한사항 2 ≤ n_str ≤ 10 n_str이 "0"으로만 이루어진 경우는 없습니다. 입출력 예 n_str result "0010" "10" "854020" "854020" 입출력 예 설명 입출력 예 #1 "0010"의 가장 왼쪽에 연속으로 등장하는 "0"을 모두 제거하면 "10"이 됩니다. 입출력 예 #2 "854020"는 가장 왼쪽에 0이 없으므로 "854020"을 return합니다. 코드 class Solution { public String solution(String n_str) { String answer =..
모던 자바 스크립트 Deep Dive 를 읽고 정리한 글 입니다. 14. 1 변수의 생명 주기 변수의 생명주기 메모리 공간이 확보된 시점부터 메모리 공간이 헤제 되어 가용 메모리 풀에 반환되는 시점 변수에 생명 주기가 없다면 한번 생성된 변수는 프로그램을 종료하지 않는 한 메모리 공간 점유 호이스팅 변수 선언이 스코프의 선두로 끌어 올려진 것처럼 동작하는 자바스크립트의 고유 동작 호이스팅은 스코프를 단위로 동작 지역 변수의 생명 주기 지역 변수의 생명 주기 = 함수의 생명 주기와 일치 함수 호출 직후 함수 몸체의 코드가 순차적으로 실행되기 이전에 자바스크립트 엔진에 의해 실행 대부분 지역 함수의 생명 주기와 함수의 생명 주기가 일치하지만 지역 함수보다 오래 생존 할 수도 있음 function foo() ..
모던 자바 스크립트 Deep Dive 를 읽고 정리한 글 입니다. 13.1 스코프란? 스코프(유효 범위) 모든 식별자(변수 이름, 함수 이름, 클래스 이름 등)가 자신이 선언된 위치에 의하여 다른 코드가 식별자 자신을 참조할 수 있는 유효범위가 결정 되는 것 식별자가 유효한 범위 자바스크립트 엔진이 식별자를 검색할 때 사용하는 규칙 function add(x, y) { // 매개변수는 함수 몸체 내부에서만 참조 가능 = 매개변수의 스코프는 함수 몸체 내부 console.log(x, y);// => 2 5 return x + y; } add(2, 5); console.log(x, y);// => ReferenceError: x is not defined 변수 코드의 바깥 영역, 코드 블록, 함수 몸체 내에..
모던 자바 스크립트 Deep Dive 를 읽고 정리한 글 입니다. 12. 1 함수란? 함수 계산 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의 함수 이름 : 함수를 구별하기 위해 붙인 식별자 매개 변수 (parameter) : 함수 내부로 입력을 전달 받는 변수 반환값 (return value) : 출력 인수 (argument) : 입력 함수 정의 (function definition) 함수 생성 함수 정의만으로 함수가 실행되지 않음. 함수 호출 (function call/invoke) 인수를 매개 변수를 통해 함수에 전달 및 함수의 실행 명시적 지시 함수를 호출 시 코드 블록에 담긴 문들 일괄적으로 실행 및 반환값 반환 12. 2 함수를 사용하는 이유 코드의 재사용 함수는 몇 번..
A 강조하기 문제 설명 문자열 myString이 주어집니다. myString에서 알파벳 "a"가 등장하면 전부 "A"로 변환하고, "A"가 아닌 모든 대문자 알파벳은 소문자 알파벳으로 변환하여 return 하는 solution 함수를 완성하세요. 제한사항 1 ≤ myString의 길이 ≤ 20 myString은 알파벳으로 이루어진 문자열입니다. 입출력 예 myString result "abstract algebra" "AbstrAct AlgebrA" "PrOgRaMmErS" "progrAmmers" 입출력 예 설명 입출력 예 #1 0번, 5번, 9번, 15번 인덱스의 "a"는 소문자이므로 전부 대문자로 고쳐줍니다. 다른 문자들은 전부 "a"가 아닌 소문자이므로 바꾸지 않습니다. 따라서 "AbstrAct ..
모던 자바 스크립트 Deep Dive 를 읽고 정리한 글 입니다. 원시 타입 객체 타입 변경 불가능한 값 변경 가능한 값 변수에 할당하면 변수에 실제 값 저장 변수에 할당하면 변수에 참조 값 저장 원시 값 할당 변수 참조 -> 메모리에 저장되어 있는 원시 값 접근 객체 할 변수 참조 -> 메모리에 저장된 참조 값으로 실제 객체 접근 "변수는 ~ 값을 갖는다" "변수의 값은 ~ 이다" "변수는 객체를 참조하고 있다" "변수는 객체를 가리키고 있다" 변수를 다른 변수에 할당 => 원본의 원시 값이 복사되어 전달 = 값에 의한 전달 변수를 다른 변수에 할당 => 원본의 참조 값이 복사되어 전달 = 참조에 의한 전달 원시 값을 가진 변수 값 변경 -> 재할당 객체를 할당한 변수 값 변경 -> 직접 변경 가능 S..
모던 자바 스크립트 Deep Dive 를 읽고 정리한 글 입니다. 10. 1 객체란? 자바스크립트는 객체 기반의 프로그래밍 언어 (원시 값을 제외한 나머지 값은 모두 객체) 원시 타입 객체 타입 단 하나의 값만 나타냄 다양한 타입의 값 (원시 포함)을 하나의 단위로 구성한 복합적 자료구조 변경 불가능한 값 변경 가능한 값 객체 0개 이상의 프로퍼티와 메서드로 구성된 집합 상태와 동작을 하나의 단위로 구조화 할 수 있음 자바스크립트의 객체는 함수와 밀접한 관계 프로퍼티 객체의 상태를 나타내는 값 자바스크립트에서 사용할 수 있는 모든 값은 프로퍼티 값이 될 수 있음 키와 값으로 구성 메서드 프로퍼티(상태 데이터)를 참조하고 조작할 수 있는 동작 메서드 = 프로퍼티 값이 함수, 일반 함수와 구분 됌 객체지향 ..
구구르밍
'2023/11 글 목록 (5 Page)