-
[Javascript] 리터럴과 생성자Development/Javascript 2021. 1. 15. 17:33728x90
리터럴
리터럴이란?
MDN을 보면 리터럴을 아래와 같이 정의하고 있다.
JavaScript에서 값을 나타내기 위해 리터럴을 사용합니다. 이는 말 그대로 스크립트에 부여한 고정값으로, 변수가 아닙니다.
이 말은 즉, 변수의 데이터 타입을 고정해서 부여한다는 말이다.
리터럴 방식의 변수 선언방식 (리터럴 표기법)
var x = []; var y = 1;
코드를 살펴보자!
변수 x에 배열을 할당하고, 변수 y에 1을 할당했다.
그렇다는 것은 변수 x의 데이터 타입은 배열이고 변수 y의 데이터 타입은 정수라는 것이다.
변수 x는 배열이라는 고정값을, 변수 y는 정수라는 고정값을 갖는다.
자, 그럼 이제 MDN이 정의한 "이는 말 그대로 스크립트에 부여한 고정값"이라는게 무슨 말인지 이해할 수 있다.
변수 x는 배열 리터럴로 선언된 변수이고, 변수 y는 정수 리터럴로 선언된 변수다.
이렇게 변수를 선언함과 동시에 그 값을 지정해주는 표기법을 리터럴 표기법이라고 한다.
생성자
생성자란?
객체의 초기화를 담당하는 서브루틴을 말한다.
자바스크립트의 생성자
자바스크립트는 프로토타입 기반 언어이며, 클래스 기반 언어에서 의미하는 생성자와 다르다.
어떤 객체를 원형으로 삼고 이를 참조하여 새 객체를 만드는 것이다.
생성자를 이용한 변수 선언방식 (생성자 함수 표기법)
var x = new Array(3);
new 연산자를 사용해서 객체를 생성하여, 변수 x에 할당한다.
null, undefined를 제외한 모든 데이터 타입에 그에 대응하는 생성자 함수가 있다.
리터럴 vs 생성자
둘의 차이점은 프로토타입 객체(__proto__)다.
생성자 표기법으로 생성한 변수의 프로토타입은 생성자 함수고,
리터럴 표기법으로 생성한 변수의 프로토타입은 자기 자신의 객체다.
728x90'Development > Javascript' 카테고리의 다른 글
[Javascript] Call, Apply, Bind 차이점 (0) 2021.01.13 [Javascript] 배열 메서드 정리 (0) 2020.12.26 [Javascript] Prettier과 ESLint로 코드 예쁘게 유지하기 (0) 2020.10.10 [Javascript] 실행 컨텍스트(execution context) (0) 2020.08.27 [Javascript] 콜백함수와 비동기 처리 part 2 (0) 2020.08.18