JavaScript 리터럴 핥아보기

deeno_0yong·2022년 1월 24일
0

JavaScript에 관하여

목록 보기
2/4
post-thumbnail

리터럴??

사람이 이해할 수 있는 문자나 기호를 사용해서 데이터를 생성하는 표기법을 말한다.

소스코드

const number = 100;

해당 변수 선언문을 보면 =연산자 다음에 100을 볼 수 있다. 여기서 리터럴은 100이고, 코드를 해석해보면 '상수 number는 100이라는 정수형 데이터를 가진 메모리를 참조하는 식별자다.' 라고 할 수 있다.

그럼 리터럴 = 데이터 인가?

💡 : 노농 정확히 얘기하면 우리가 작성한 리터럴이 javascript엔진에 의해서 데이터로 변환이 되는 것이라고 할 수 있다. 그러니 우리가 에디터에서 끄적인 소스코드 중 데이터랍시고 끄적인 문자 or 기호가 리터럴인거고, 그 리터럴을 엔진에서 해석한게 데이터라는 것. 절대 리터럴=데이터가 아니다.


이 모든 과정은 런타임 시점에서 이루어진다.

리터럴의 종류

정수 리터럴

const number = 100; //정수형 데이터를 생성

부동소수점 리터럴

const number = 10.5; //소수형 데이터를 생성

2진수, 8진수, 16진수 리터럴

const number2 = 0b0101; //0b로 시작
const number8 = 0o101; //0o로 시작
const number16 = 0x41; //0x로 시작

여담으로 8진수와 16진수 표기법은 ES6에서부터 도입되었다.

문자열 리터럴

const charset = 'hello'; //문자형 데이터를 생성

'' or ""로 표기하게 되면 문자형 리터럴로 인식하게 된다.

+ 템플릿 리터럴

const charset = `hello`; //문자형 데이터를 생성

ES6에서 도입된 표기법이다. 다른 문자열 리터럴과 다르게 ``을 사용하며 표현식/문자열 삽입, 여러 줄 문자열, 문자열 형식화, 문자열 태깅 등 다양한 기능을 제공한다.

불리언, null, undefined 리터럴

const bool = true;
const bool2 = false;
const nope = null;
const nono = undefined;

객체 리터럴

const object = {
	a: 1,
	b: 'omg',
	c: {
		a: 10,
		b: 'god',
	},
};

console.log('object : ' + JSON.stringify(object, null, 4));
console.log('object의 a : ' + object.a); //1
console.log('object의 b : ' + object.b); //omg
console.log('object의 c : ' + JSON.stringify(object.c, null, 4)); 
console.log('object의 c의 a : ' + object.c.a); //10
console.log('object의 c의 b : ' + object.c.b); //god

{ }, ( )로 표기하게 되면 객체로 인식하게 된다.
JavaScript가 가지는 고유의 리터럴로 객체 자체를 데이터화 시키는 특징이 있다. (객체 리터럴을 사용하는 또 다른 언어가 있다면 알려주길 바란다.)
처음에는 객체안의 key와 value를 분리하고 value만을 데이터로 생성하는줄 알았는데,
위 로그에서 object.c의 로그와 object.c.a , object.c.b의 로그를 보면 c는 데이터가 되기도 하고, 하위 객체의 식별자가 되기도 하는 것을 볼 수 있다.
이걸 교수님께도 여쭤봤는데 교수님도 객체 자체를 값으로 생성하는걸로 판단된다고 하신다.

권장하는 방법은 아니지만..

const d = (omg);

이렇게 끄적이면 객체리터럴로 인식한다..ㅋ

함수 리터럴

const func = function() {}; 
//함수객체 데이터를 생성

Javascript 함수의 성질에 따라 리터럴로 표기가 가능하다. 함수에 대한 자세한 내용이 궁금하다면 여기 들어가서 한 번 쓱 읽어보자.
표기법은 function() {} 이다.

배열 리터럴

const arr = [1, 2, 3, 4];
//배열 데이터를 생성

표기법은 []이다.

정규표현식 리터럴

const exp = /[A-Z]+/g
profile
목표가 생겨 개발을 시작한, 아직은 미성숙한 학생이라 합니다

0개의 댓글