본문 바로가기

반응형

CS

(69)
객체 key 값으로 정렬하기 배열 정렬은 많이 해봤지만, 객체를 Key 값으로 정렬할 경우가 생길 것 같아 기록해본다. const unordered = { 'b': 'foo', 'c': 'bar', 'a': 'baz' }; console.log(JSON.stringify(unordered)); // → '{"b":"foo","c":"bar","a":"baz"}' const ordered = Object.keys(unordered).sort().reduce( (obj, key) => { obj[key] = unordered[key]; return obj; }, {} ); console.log(JSON.stringify(ordered)); // → '{"a":"baz","b":"foo","c":"bar"}'
[디자인 패턴] 싱글톤/팩토리/전략/옵저버 2023년 4월 7일 16p~43p 라이브러리 & 프레임워크 라이브러리와 프레임워크는 공통으로 사용될 수 있는 특정한 기능들을 모듈화한 것을 의미한다. 라이브러리는 폴더명, 파일명 등에 대한 규칙이 없고 프레임워크에 비해 자유롭지만 프임워크는 규칙이 있으며 라이브러리에 비해 좀 더 엄격하다. 1.1 디자인 패턴 디자인 패턴이란 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 규약 형태로 만들어 놓은 것이다. 1.1.1 싱글톤 패턴 싱글톤 패턴이란 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴이다. 하나의 클래스를 기반으로 단 하나의 인스턴스를 만들어 이를 기반으로 로직을 만드는 데 쓰이며, 보통 데이터베이스 연결 모듈에 많이 사용한다고 한다. /..
19장 프로토타입(3) 2023년 4월 7일 209p~312p 19장 프로토타입 19.11 직접상속 19.11.1 Object.create에 의한 직접 상속 Object.create 메서드는 명시적으로 프로토타입을 지정하여 새로운 객체를 생성한다. Object.create 메서드도 다른 객체 생성 방식과 마찬가지로 추상 연산 OrdinaryObjectCreate를 호출한다. Object.create의 첫번째 매개변수에는 생성할 객체의 프로토타입으로 지정할 객체를 전달하고, 두번째 매개변수에는 생성할 객체의 프로퍼티 키와 프로퍼티 디스크립터 객체로 이루어진 객체를 전달하며 이것은 옵션이다. // 프로토타입이 null인 객체를 생성한다. 생성된 객체는 프로토타입 체인의 종점에 위치한다. // obj -> null let obj =..
19장 프로토타입(2) 2023년 4월 6일 280p~299p 19장 프로토타입 19.6 객체 생성 방식과 프로토타입의 결정 객체는 다음과 같이 다양한 생성 방법이 있다. 객체 리터럴, Object 생성자 함수, 생성자 함수... 다양한 방식으로 생성된 모든 객체는 각 방식마다 세부적인 객체 생성 방식의 차이는 있지만 추상 연산 OrdinaryObjectCreate에 의해 생성된다는 공통점이 있다. OrdinaryObjectCreate는 필수적으로 자신이 생성할 객체의 프로토타입을 인수로 전달 받고, 자신이 생성할 객체에 추가할 프로퍼티 목록을 옵션으로 전달할 수 있다. 먼저 빈 객체 생성 후 객체에 추가할 프로퍼티 목록이 인수로 전달되면 프로퍼티를 객체에 추가하고, 인수로 전달받은 프로토타입을 자신이 생성한 객체의 [[pro..
19장 프로토타입(1) 2023년 4월 5일 259p ~ 279p 19장 프로토타입 19. 1 객체지향 프로그래밍 자바스크립트는 강력한 객체지향 프로그래밍 능력을 지니고 있는 프로토타입 기반의 객체 지향 프로그래밍 언어이다. 자바스크립트를 이루고 있는 거의 모든 것이 객체다. 객체지향 프로그래밍은 실세계의 실체를 인식하는 철학적 사고를 프로그래밍에 접목하려는 시도에서 시작한다. 실체는 특징이나 성질을 나타내는 속성을 가지고 있다. 다양한 속성 중에서 프로그램에 필요한 속성만 간추려 내어 표현하는 것을 추상화라고 한다. const person = { name: "lee", address: "Seoul" } console.log(person) // {name:"lee", address: "Seoul"} 객체란 상태 데이터인 프로퍼..
11장 원시값과 객체의 비교 / 12장 함수 22.11.28 월요일 140p~150p 11장 원시값과 객체의 비교 || 원시값 문자열과 불변성 원시 값을 저장하려면 먼저 확보해야하는 메모리 공간의 크기를 결정해야 한다. 이를 위해 원시 타입별로 메모리 공간의 크기가 미리 정해져있다. 원시 값인 문자열은 다른 원시 값과 비교할 때 독특한 특징이 있따. 문자열은 0개 이상의 문자로 이뤄진 집합을 말하며, 1개의 문자는 2바이트의 메모리 공간에 저장된다. 숫자 값은 모두 동일한 8바이트가 필요하지만, 문자열의 경우 몇 개의 문자로 이뤄졌느냐에 따라 필요한 메모리 공간의 크기가 결정된다. C에서는 하나의 문자를 위한 데이터 타입만 있을 뿐 문자열 타입은 존재하지 않는다. C에서는 문자열을 문자의 배열로 처리하고 자바에서는 문자열을 String 객체로 처리..
9장 타입 변환과 단축평가 / 10장 객체 리터럴 / 11장 원시값과 객체 비교 22.11.21 월요일 108p~118p 09장 타입 변환과 단축 평가 || 타입 암묵적 타입 변환(타입 강제 변환) 개발자의 의도와는 상관없이 표현식을 평가하는 도중에 자바스크립트 엔진에 의해 암묵적으로 타입이 자동 변환되는 것 ex) 10 + ‘’ 문자열 타입으로 변환 자바스크립트 엔진은 문자열 연결 연산자 표현식을 평가하기 위해 문자열 연결 연산자의 피연산자 중 문자열 타입이 아닌 피연산자를 문자열 타입으로 암묵적 타입 변환한다. ex) 1 + ‘2’ // ‘12’ 템플릿 리터럴의 표현식 삽입은 표현식 평가 결과를 문자열 타입으로 암묵적 타입 변환 한다. ex) 1 + 1 = ${1 + 1} // “1+1 = 2” 숫자 타입으로 변환 자바스크립트 엔진은 문자열 연결 연산자 표현식을 평가하기 위해 문..
7장 연산자 / 8장 제어문 22.11.14 월요일 74p~83p 07장 연산자 산술연산자 : 이항 산술 연산자 산술 연산이 불가능한 경우, NaN을 반환한다. 숫자 타입이 아닌 피연산자에 + 단항 연산자를 사용하면 피연산자를 숫자 타입으로 변환하여 반환한다. let x = '1'; console.log(+x); // 1 산술연산자 : 문자열 산술 연산자 연산자는 피연산자 중 하나 이상이 문자열인 경우 문자열 연결 연산자로 동작한다. true : 1, false : 0, null : 0 으로 타입 변환된다. 1 + true; // 2 1 + false // 1 1 + null // 1 이를 암묵적 타입 변환 또는 강제 타입 변환이라고 한다. 비교 연산자 : 동등/일치 비교 연산자 NaN === NaN; // false NaN은 자신..

반응형