분류 전체보기

    [JS] DeepDive(33) 7번째 데이터 타입 Symbol

    심벌은 ES6에서 도입된 7번째 데이터 타입으로 변경 불가능한 원시 타입의 값이다. 심벌값은 Symbol함수를 호출하여 생성한다.이때 생성된 심벌 값은 외부로 노출되지 않아 확인할 수 없으며, 다른값과 절대 중복되지 않은 유일무이한 값이다. // Symbol 함수를 호출하여 유일무이한 심벌 값을 생성한다. const mySymbol = Symbol(); console.log(typeof mySymbol); // symbol // 심벌 값은 외부로 노출되지 않아 확인할 수 없다. console.log(mySymbol); // Symbol() 언뜻보면 생성자 함수로 객체를 생성하는 것처럼 보이지만 new 연산자와 함께 호출하지 않으며 선택적으로 문자열을 인수로 전달할 수 있다. // 심벌 값에 대한 설명이 ..

    [JS] DeepDive(32) String

    표준 빌트인 객체인 String은 원시 타입인 문자열을 다룰 때 유용한 프로퍼티와 메서드를 제공한다. String객체는 생성자 함수 객체이다. const strObj = new String(); console.log(strObj); // String {length: 0, [[PrimitiveValue]]: ""} String 생성자 함수에 인수를 전달하지 않고 new 연산자오 ㅏ함께 호출하면 [[StringData]] 내부슬롯에 빈 문자열을 할당한 String 래퍼 객체를 생성한다. 생성자 함수의 인수로 문자열을 전달하면 해당 문자열을 할당한 String 래퍼 객체를 생성한다. const strObj = new String('Lee'); console.log(strObj); // String {0: "L..

    [JS] DeepDive(31) RegExp

    정규표현식이란 일정한 패턴을 가진 문자열의 집합을 표현하기 위해 사용하는 형식 언어이다. 정규표현식은 JS의 고유 문법은 아니며 대부분의 프로그래밍 언어와 코드 에디터에 내장되어 있다. 정규표현식은 문자열을 대상으로 패턴 매칭 기능을 재공한다. 예를들어 휴대폰 전화번호를 얻어내는 정규표현식을 보자. // 사용자로부터 입력받은 휴대폰 전화번호 const tel = '010-1234-567팔'; // 정규 표현식 리터럴로 휴대폰 전화번호 패턴을 정의한다. const regExp = /^\d{3}-\d{4}-\d{4}$/; // tel이 휴대폰 전화번호 패턴에 매칭하는지 테스트(확인)한다. regExp.test(tel); // -> false 정규표현식을 활용하면 반복문이나 조건문 없이 패턴을 정의하고 테스트..

    [JS] DeepDive(30) Date

    표준 빌트인 객체인 Date는 날짜와 시간을 위한 메서드를 제공하는 빌트인 객체이면서 생성자 함수이다. Date는 생성자 함수로 Date 객체는 내부적으로 날짜와 시간을 나타내는 정수값을 가진다. 해당 값은 1970년 1월 1일 00:00:00(UTC)를 기점으로 Date 객체가 나타내는 날짜와 시간까지의 밀리초를 나타낸다. Date 생성자 함수로 객체를 생성하는 방법은 4가지가 있다. 1. new Date() 현재 날짜와 시간을 가지는 Date객체를 반환한다. 2. new Date(milliseconds) 1970년 1월 1일을 기점으로 인수로 전달된 밀리초만큼 경과한 날짜와 시간을 나타내는 Date객체 반환 // 한국 표준시 KST는 협정 세계시 UTC에 9시간을 더한 시간이다. new Date(0)..

    [JS] DeepDive(29) Math

    표준 빌트인 객체인 Math는 수학적인 상수와 함수를 위한 프로퍼티와 메서드를 제공한다. Math.PI 원주율 PI 값을 반환한다. Math.PI; // -> 3.141592653589793 Math.abs 인수로 전달된 숫자의 절대값을 반환하며 절대값은 0 또는 양수여야 한다. Math.abs(-1); // -> 1 Math.abs('-1'); // -> 1 Math.abs(''); // -> 0 Math.abs([]); // -> 0 Math.abs(null); // -> 0 Math.abs(undefined); // -> NaN Math.abs({}); // -> NaN Math.abs('string'); // -> NaN Math.abs(); // -> NaN Math.round 인수로 전달된 숫..

    [JS] DeepDive(28) Number

    표준빌트인 객체인 Number는 원시 타입인 숫자를 다룰 때 유용한 프로퍼티와 메서드를 제공한다. new 연산자와 함께 Number 인스턴스를 생성할 수 있다. const numObj = new Number(); console.log(numObj); // Number {[[PrimitiveValue]]: 0} Number.EPSILON ES6에서 도입된 Number.EPSILON은 1과 1보다 큰 숫자 중에서 가장 작은 숫자와의 차이와 같다. Number.EPSILON은 약 2.22044604925031308084726633361816 * 10^-16 이다. 따라서 부동 소수점 산술연산은 정확한 결과를 기대하기 어렵고 무한소수를 계산하는 경우 미세한 오차가 발생할 수 밖에 없다. 0.1 + 0.2; //..