표준 빌트인 객체인 String은 원시 타입인 문자열을 다룰 때 유용한 프로퍼티와 메서드를 제공한다. String 생성자 함수표준 빌트인 객체인 String 객체는 생성자 함수 객체다. new 연산자와 함께 호출하여 String 인스턴스를 생성할 수 있다. String 생성자 함수에 인수를 전달하지 않고 new 연산자와 함게 호출하면 [[StringData]] 내부 슬릇에 비 ㄴ문자열을 할당한 String 래퍼 객체를 생성한다.const strObj = new String();console.log(strObj); // String {length: 0, [[PrimitiveValue]]: ""} String 생성자 함수의 인수로 문자열을 전달하면서 new 연산자와 함께 호출하면 [[StringData]] ..
생성자 함수
1. 정규 표현식이란?정규 표현식은 일정한 패턴을 가진 문자열의 집합을 표현하기 위해 사용하는 형식 언어다. JS 뿐만 아니라 대부분의 프로그래밍 언어와 코드 에디터에 내장되어 있다. 정규 표현식은 문자열을 대상으로 패턴 매칭 기능을 제공하며, 이는 특정 패턴과 일치하는 문자열을 검색하거나 추출 또는 치환할 수 있는 기능을 말한다.// 사용자로부터 입력받은 휴대폰 전화번호const tel = '010-1234-567팔';// 정규 표현식 리터럴로 휴대폰 전화번호 패턴을 정의한다.const regExp = /^\d{3}-\d{4}-\d{4}$/;// tel이 휴대폰 전화번호 패턴에 매칭하는지 테스트(확인)한다.regExp.test(tel); // -> false 정규표현식을 사용하면 반복문과 조건문 없이 ..
표준 빌트인 객체인 Date는 날짜와 시간을 위한 메서드를 제공하는 빌트인 객체이며 생성자 함수이다. UTC는 국제 표준시를 의미하며 UTC와 GMT라고도 불리기도 한다. 한국의 KST는 UTC보다 9시간 빠르다. Date 생성자 함수Date는 생성자 함수이며 생성자 함수로 생성한 Date 객체는 내부적으로 날짜와 시간을 나타내는 정수값을 갖는다. 이 값은 1970년 1월 1일 00:00:00(UTC)을 기점으로 Date 객체가 나타내는 정수값을 갖는다. Date 생성자 함수로 객체를 새엇앟는 방법은 4가지가 있다. new Date()인수 없이 new 연산자와 함께 후출하면 현재 날짜와 시간을 갖는 Date 객체를 반환한다. new 연산자 없이도 사용 가능하다.new Date(); // -> Thu Ja..
표준 빌트인 객체인 Number는 원시 타입인 숫자를 다룰 대 유용한 프로퍼티와 메서드를 제공한다. 1. Number 생성자 함수생성자 함수 객체인 Number를 new 연산자와 함께 호출해 Number 인스턴스를 생성할 수 있으며, [[NumberData]] 내부 슬릇에 0을 할당한 Number 래퍼 객체를 생성한다.const numObj = new Number();console.log(numObj); // Number {[[PrimitiveValue]]: 0} 생성자 함수에 인수로 숫자를 전달하게 되면 인수로 전달받은 숫자를 할당한 Number 래퍼 객체를 생성한다.const numObj = new Number(10);console.log(numObj); // Number {[[PrimitiveVal..
JS의 클래스JS는 프로토타입 기반 객체지향 언어다. 다른 객체지향 언어와의 차이점은 있지만 JS는 강력한 객체지향 프로그래밍 능력을 갖고있다. 특히 JS는 클래스 없이 객체지향 프로그래밍을 구현할 수 있는 프로토타입 기반 객체지향 언어이다.// ES5 생성자 함수var Person = (function () { // 생성자 함수 function Person(name) { this.name = name; } // 프로토타입 메서드 Person.prototype.sayHi = function () { console.log('Hi! My name is ' + this.name); }; // 생성자 함수 반환 return Person;}());// 인스턴스 생성var me = new ..
22.1 this 키워드 객체는 상태를 나타내는 프로퍼티와 동작을 나타내는 메서드를 하나의 논리적인 단위로 묶은 복합적 자료구조이다. 메서드는 자신이 속한 객체의 프로퍼티를 참조/변경할 수 있어야 한다. 이때 자신이 속한 객체를 가리키는 식별자를 참조할 수 있어야 한다. 객체 리터럴 방식으로 정의된 객체는 재귀적으로 자신이 속한 객체를 가리킬 수 있다. const circle = { radius: 5, getDiameter() { // 해당 메서드가 속한 객체의 프로퍼티나 다른 메서드를 참조하려면 // 자신이 속한 객체인 circle을 참조할 수 있어야 한다. return 2 * circle.radius; } } 위의 예제의 객체 리터럴은 circle 변수에 할당되기 직전에 평가되어 getDiameter..