본문 바로가기

Note/JavaScript43

JS DeepDive 재정리2 [Object를 이용한 객체 생성]const name = new Object();이렇게 생성자는 반드시 new 연산자와 함께 호출해야한다. 그렇지 않으면 그냥 일반 함수일 뿐이다.생성자 함수 내부 : 인스턴스 생성 → 인스턴스 초기화JS엔진은 new연산자를 사용하여 생성자 함수를 호출 하였을 때 암묵적으로 인스턴스를 생성 및 초기화를 거친 다음 인스턴스를 반환한다.[내부 메서드]일반 함수로서의 호출 : Call - callablenew 연산자를 통한 생성자 함수로서의 호출 : [[Construct]][함수의 프로퍼티]arguments : arguments 프로퍼티 내에는 전달받은 인수가 함수의 인수 갯수를 초과하더라도 모두 가지고 있다. 곧 매개 변수를 확정할 수 없는 가변 인자 함수를 만들 때 유용하다.. 2025. 2. 5.
Set과 Map Set: 중복되지 않는 유일한 값들의 집합이 Set이다.배열과의 차이 구분 배열 Set 객체 동일한 값을 중복하여 포함 가능 O X 요소 순서의 의미 O X 인덱스로 요소에 접근 가능 O X Set은 수학적 집합을 구현하기 위함으로써 교집합, 합집합, 차집합, 여집합 등을 구현할 수 있다.Set 객체 생성형태 : const set = new Set.. 2024. 5. 14.
디스트럭처링 할당 디스트럭처링 할당(구조 분해 할당): 구조화된 배열과 같은 이터러블 혹은 객체의 구조를 파괴하여 1개 이상의 변수에 개별적으로 할당하는 것.배열 디스트럭처링 할당ES5const arr = [1, 2, 3];const one = arr[0]; // 1const two = arr[1]; // 2const three = arr[2]; // 3ES6 이후const arr = [1, 2, 3];const [one, two, three] = arr; //할당 기준은 배열의 인덱스단, 우변에는 반드시 이터러블을 할당해야 한다. 그리고 변수의 개수와 이터러블 요소의 갯수가 반드시 일치할 필요는 없다.기본값 설정const [a, b, c = 3] = [1, 2];console.log(a, b, c); // 1 .. 2024. 5. 14.
스프레드 문법 스프레드 문법: 하나로 뭉쳐져있는 값들의 집합을 분산시켜 개별적인 값들의 목록으로 만든다.사용 대상 : for ... of로 순회 가능한 이터러블 - Array, String, Map, Set, DOM 컬렉션(NodeList, HTMLCollection), arguments형태 : ...요소단, 이것은 값들의 목록이며 값으로 사용할 수 없다.const list = ...[1, 2, 3]; // SyntaxError§ 사용 가능 문맥함수 호출문의 인수 목록배열 리터럴의 요소 목록객체 리터럴의 프로퍼티 목록함수 호출문 인수 목록에서 사용하는 경우const arr = [1, 2, 3];const max = Math.max(...arr); // 3위와 같이 사용하면 해당 배열의 수를 좀 더 간결하게 표현할 수.. 2024. 5. 13.
이터러블 이터레이션 프로토콜(ES6): 순회 가능한 데이터 컬렉션을 만들기 위해 미리 약속한 규칙이터러블 프로토콜: Well-know Symbol의 Symbol.iterator 를 사용하거나 프로토타입 체인을 통하여 상속받은 Symbol.iterator 를 사용하여 이터레이터 프로토콜을 준수한 이터레이터를 반환하며 이 규약을 이터러블 프로토콜이라 한다. 이 규약을 준수한 객체는 이터러블이라고 한다.이터레이터 프로토콜: 이터레이터는 next 메서드를 소유하고, 이 next 메서드를 호출하면 해당 이터러블을 순회하면서 value 와 done 을 가지는 이터레이터 result 객체를 반환한다. 이것이 이터레이터 프로토콜이다. 이 규약을 준수한 객체를 이터레이터라고 한다.이터러블: Symbol.iterator 를 프로.. 2024. 5. 13.
Symbol Symbol : 심볼 타입은 변경 불가능한 원시 타입의 값이다. 심벌 값의 생성 Symbol 함수 형태 : Symbol(인수) 특징 : 다른 값과 절대 중복되지 않는 유일무이한 값을 지정할 수 있다. Symbol 값은 리터럴 표기법을 통해 지정할 수 없기 때문에 Symbol 함수를 사용하여야 한다. Symbol.for 형태 : Symbol.for(인수) 특징 : 전역 심벌 레지스트리에 전달받은 인수 이름으로의 키로 저장된 심벌 값이 있는지 없는지 확인한 뒤, 값이 있다면 해당 심벌 값을 반환하고 값이 없다면 새로운 심벌 값을 생성한다. Symbol.keyFor 형태 : Symbol.keyFor(인수) 특징 : 전역 심벌 레지스트리에 전달받은 인수를 키로 가지고 있는 심벌 값을 추출한다. 심벌과 프로퍼티 .. 2024. 3. 21.
반응형