본문 바로가기

분류 전체보기

(894)
[Deep dive] 33장 7번째 데이터 타입 Symbol 33.1 심벌이란? 심벌(symbol) - ES6에서 도입된 7번쨰 데이터 타입으로 변경 불가능한 원시 타입의 값 - 심벌 값은 다른 값과 중복되지 않는 유일무이한 값 - 이름의 충돌 위험이 없는 유일한 프로퍼티 키를 만들기 위해 사용 33.2 심벌값의 생성 33.2.1 Symbol 함수 - 심벌값은 Symbol 함수를 호출하여 생성 - 심벌 값은 외부로 노출되지 않아 확인할 수 없으며, 다른 값과 절대 중복되지 않는 유일무이한 값 //Symbol 함수를 호출하여 유일무이한 심벌 값을 생성 const mySymbol = Symbol(); console.log(typeof mySymbol); //symbol //심벌 값은 외부로 노출되지 않아 확인할 수 없음 console.log(mySymbol); //S..
[Deep dive] 32장 String 32.1 String 생성자 함수 - String 생성자 함수에 인수를 전달하지 않고 new 연산자와 함께 호출하면 [[StringData]] 내부 슬롯에 빈 문자열을 할당한 String 래퍼 객체를 생성 - String 생성자 함수의 인수로 문자열을 전달하면서 new 연산자와 함께 호출하면 [[StringData]] 내부 슬롯에 인수로 전달받은 문자열을 할당한 String 래퍼 객체를 생성 - String 래퍼 객체는 length 프로퍼티와 인덱스를 나타내는 숫자 형식의 문자열을 프로퍼티 키로, 각 문자를 프로퍼티 값으로 갖는 유사 배열 객체 이자 이터러블 - 문자열은 원시 값이므로 변경 불가 - String 생성자 함수의 인수로 문자열이 아닌 값을 전달하면 인수를 문자열로 강제 변환한 후, [[Str..
[Deep dive] 31장 RegExp 31.1 정규 표현식이란? 정규 표현식(regular expression) - 일정한 패턴을 가진 문자열의 집합을 표현하기 위해 사용하는 형식 언어 (formal language) - 문자열을 대상으로 패턴 매칭 기능 제공 - 패턴 매칭 기능 : 특정 패턴과 일치하는 문자열을 검색하거나 추출 또는 치환할 수 있는 기능 - 정규 표현식을 사용하면 반복문과 조건문 없이 패턴을 정의하고 테스트하는 것으로 간단히 체크 31.2 정규 표현식의 생성 1) 정규 표현식 리터럴 - 패턴과 플래그로 구성 const target = 'Is this all there is?'; //패턴:is //플래그: i => 대소문자를 구별하지 않고 검색 const regexp = /is/i; //test 메서드는 target 문자열에..
[Deep dive] 30장 Date 30.1 Date 생성자 함수 - 표준 빌트인 객체인 Date는 날짜와 시간을 위한 메서드를 제공하는 빌트인 객체이면서 생성자 함수 - UTC (협정 세계시 Coordinated Universal Time) : 국체 표준시 - KST (한국 표준시 Korea Standard Time) : UTC + 9시간 - Date 생성자 함수로 생성한 Date 객체는 내부적으로 날짜와 시간을 나타내는 정수값을 가짐 - 1970년 1월 1일 00:00:00(UTC)을 기점으로 Date 객체가 나타내는 날짜와 시간까지의 밀리초를 나타냄 30.2 Date 메서드 메서드명 설명 Date.now UTC을 기점으로 현재시간까지 경과한 밀리초를 숫자로 반환 Date.parse UTC을 기점으로 인수로 전달된 지정시간까지의 밀리초..
[Deep dive] 29장 Math - 표준 빌트인 객체인 Math는 생성자 함수가 아니다 - Math는 정적 프로퍼티와 정적 메서드만 제공 29.1 Math 프로퍼티 29.1.1 Math.PI - 원주율 PI값 반환 29.2 Math 메서드 29.2.1 Math.abs - 인수로 전달된 숫자의 절대값(absolute value)를 반환 29.2.2 Math.round - 인수로 전달된 숫자의 소수점 이하를 반올림한 정수를 반환 Math.round(1.4); //1 Math.round(1.6); //2 Math.round(-1,4); //-1 Math.round(-1.6); //-2 Math.round(); //NaN 29.2.3 Math.ceil - 인수로 전달된 숫자의 소수점 이하를 올림한 정수를 반환 Math.ceil(1.4); //..
[Deep dive] 28장 Number 28.1 Number 생성자 함수 - 표준 빌트인 객체인 Number 객체는 생성자 함수 객체 - Number 생성자 함수에 인수를 전달하지 않고 new 연산자와 함께 호출하면 [[NumberData]] 내부 슬롯에 0을 할당한 Number 래퍼 객체를 생성 - Number 생성자 함수에 인수로 숫자를 전달하면서 new 연산자와 함께 호출하면 [[NumberData]] 내부 슬롯에 인수로 전달받은 숫자를 할당한 Number 래퍼 객체를 생성 const numObj = new Number(); console.log(numObj);//[Number: 0] const numObj2 = new Number(10); console.log(numObj2); //[Number: 10] - Number 생성자 함수의 ..
[Deep dive] 27장 배열(3) 27.9 배열 고차 함수 고차함수(HOF) - 함수를 인수로 전달받거나 함수를 반환하는 함수 - 외부 상태의 변경이나 가변 데이터를 피하고 불변셩(immutability)을 지향하는 함수형 프로그래밍에 기반을 둠 27.9.1 Array.prototype.sort - 배열의 요소를 정렬 - 원본 배열을 직접 변경하며 정렬된 배열을 반환 - 기본적으로 오름차순으로 요소 정렬 - 내림차순으로 요소를 정렬하려면 sort 메서드를 사용하여 오름차순으로 정렬한 후 reverse 메서드를 사용하여 요소의 순서를 뒤집음 const fruits = ['Banana','Orange','Apple']; //오름차순 정렬 fruits.sort(); //원본 배열을 직접 변경 console.log(fruits); //[ 'Ap..
[Deep dive] 27장 배열(2) 27.8 배열 메서드 - Array 생성자 함수는 정적 메서드를 제공하며, 배열 객체의 프로토타입인 Array.prototype은 프로토타입 메서드를 제공 - 원본 배열을 직접 변경하는 메서드 (mutator method) - 원본 배열을 직접 변경하지 않고 새로운 배열을 생성하여 반환하는 메서드 (accessor method) 27.8.1 Array.isArray - Array 생성자 함수의 정적 메서드 - 전달한 인수가 배열이면 true, 배열이 아니면 false 반환 27.8.2 Array.prototype.indexOf - 원본 배열에서 인수로 전달된 요소를 검색하여 인덱스 반환 - 중복되는 요소가 여러 개 있다면 첫 번째로 검색된 요소의 인덱스 반환 - 요소가 존재하지 않으면 -1 반환 - 배열..