목록스터디/모던자바스크립트 deep dive (35)
seunghyun Note
스프레드 문법 ES6에서 도입된 스프레드 문법(spread syntax) ... 은 하나로 뭉쳐 있는 여러 값들의 집합을 펼쳐서 개별적인 값들의 목록으로 만든다 for ... of문으로 순회 가능한 이터러블에 한정해서 사용 가능 스프레드 문법의 결과는 값이 아님 (값 생성하는 연산자 아님) 변수에 할당 불가 스프레드 문법 사용 가능한 곳 (쉼표로 구분한 값의 목록을 사용하는 문맥에서만 가능) 함수 호출문의 인수 목록 배열 리터럴의 요소 목록 객체 리터럴의 프로퍼티 목록 // ...[1, 2, 3]은 [1, 2, 3]을 개별 요소로 분리한다(→ 1, 2, 3) console.log(...[1, 2, 3]); // 1 2 3 // 문자열은 이터러블이다. console.log(...'Hello'..
1 . 이터레이션 프로토콜 이터레이션 프로토콜은 순회 가능한 데이터 컬렉션을 만들기 위해 ECMAScript 사양에 정의하여 미리 약속한 규칙 ES6 이전의 순회 가능한 데이터 컬렉션은 나름의 구조를 가지고 다양한 방법으로 순회ㅆㄱㄴ ES6에서는 순회 가능한 데이터 컬렉션을 이터레이션 프로토콜을 준수하는 이터러블로 통일하여 for…of, spread, distructuring 의 대상으로 사용할 수 있도록 일원화 이터러블 이터러블 프로토콜을 준수한 객체 Symbol.iterator를 프로퍼티 키로 사용한 메서드를 직접 구현하거나 프로토타입 체인을 통해 상속받은 객체 이터러블인지 확인하는 방법 const isIterable = v => v !== null && typeof v[Symbol.iterator]..
Symbol 심벌은 ES6에서 도입된 7번째 데이터 타입으로 변경 불가능한 원시 타입의 값이다 심벌 값의 생성 심벌 값은 Symbol 함수를 호출하여 생성한다. 다른 원시값은 리터럴 표기법을 통해 생성할 수 있지만 심벌 값은 Symbol 함수를 호출하여 생성해야 한다. 또한 new 연산자와 함께 호출하지 않는다. 즉, 생성자 함수로 객체를 생성하지 않는다. // Symbol 함수를 호출하여 유일무이한 심벌 값을 생성한다. const mySymbol = Symbol(); console.log(typeof mySymbol); // symbol // 심벌 값은 외부로 노출되지 않아 확인할 수 없다. console.log(mySymbol); // Symbol() // new 생성자로 생성 불가 new Symbo..
1 Stirng 생성자 함수 String 객체는 생성자 함수 -> new 연산자와 함께 호출하여 String 인스턴스를 생성 가능 const strObj = new String(); console.log(strObj); // String {length:0, [[PrimitiveValue]]:""} String 생성자 함수에 인수를 전달하지 않고 new 연산자와 함께 호출하면 [[StringData]] 내부 슬롯에 빈 문자열을 할당한 String 래퍼 객체를 생성한다. const strObj = new String('Lee'); console.log(strObj[0]); //L strObj[0] ='S'; console.log(strObj); // 'Lee' St..
1. 정규 표현식이란? 정규 표현식은 일정한 패턴을 가진 문자열의 집합을 표현하기 위해 사용하는 형식 언어다. 정규 표현식은 문자열을 대상으로 패턴 매칭 기능을 제공한다. 패턴 매칭 기능이란 특정 패턴과 일치하는 문자열을 검색하거나 추출 또는 치환할 수 있는 기능을 말한다. 정규표현식 평소에 어려웠는데 잘됐다! 패턴 매칭 기능 - 패턴 매칭 기능은 특정 패턴과 일치하는 문자열을 검색하거나 추출 또는 치환할 수 있는 기능이다. // 사용자로부터 입력받은 휴대폰 전화번호 const tel = '010-1234-567팔'; // 정규 표현식 리터럴로 휴대폰 전화번호 패턴을 정의한다. const regExp = /^\d{3}-\d{4}-\d{4}$/; // tel이 휴대폰 전화번호 패턴에 매칭하는..
표준 빌트인 객체인 Date는 날짜와 시간을 위한 메서드를 제공하는 빌트인 객체이면서 생성자 함수이다. 1. Date 생성자 함수 Date는 생성자 함수이다. Date 생성자 함수로 생성한 Date 객체는 내부적으로 날짜와 시간을 나타내는 정수값을 갖는다. 1970년 뭐시기 언제부터 시작했다는데 별로 안중요해보인다. new Date () new연산자와 같이 호출하면 Date객체를 정수값으로 반환한다, new연산자 없이 호출하면 Date객체를 반환하지 않고 날짜와 시간 정보를 나타내는 문자열을 반환한다 new Date(); // -> Mon Jul 06 2020 01:03:18 GMT+0900 (대한민국 표준시) Date 생성자 함수를 new 연산자 없이 호출하면 Date 객체를 반환하지 않고 날짜와 시간..