📋 Literal - 값의 표현 방식 & 자바스크립트의 유연성
리터럴(Literal)은 소스 코드에 직접 작성된 값 자체를 의미합니다.
자바스크립트에서 리터럴은 단순한 데이터 표현을 넘어, 객체·배열·함수까지 생성할 수 있는 표현식* 으로 동작합니다.
1️⃣ 리터럴이란?
변수나 연산을 거치지 않고 코드에 직접 기술된 값
100
"hello"
true
null
위 값들은 모두 리터럴이며, 그 자체로 평가(evaluation)될 수 있는 표현식(Expression) 입니다.
const a = 10; // 10 → 숫자 리터럴
const b = "hi" // "hi" → 문자열 리터럴
a, b → 식별자
10, "hi" → 리터럴
2️⃣ JavaScript에서 리터럴이 중요한 이유
JavaScript는 다른 언어와 달리 객체 생성조차 리터럴로 가능합니다.
{} // 객체 리터럴
[] // 배열 리터럴
function() {} // 함수 리터럴
/abc/i // 정규식 리터럴
👉 이는 자바스크립트가 선언형(declarative) 스타일을 강하게 지원한다는 의미입니다.
리터럴을 사용하면 코드가 간결해지고, 생성 의도가 명확해지며, 불필요한 생성자 호출을 피할 수 있습니다.
3️⃣ 리터럴은 표현식이다
JavaScript에서 리터럴은 단순 값이 아니라 표현식(Expression) 입니다.
10 + 20 // 표현식
"hello" // 리터럴이자 표현식
📌 즉, 리터럴은 평가되면 값이 되는 최소 단위 표현식입니다.
4️⃣ 리터럴의 종류 (JavaScript)
🔢 숫자 리터럴
10
3.14
0b1010 // 2진수
0o12 // 8진수
0xA // 16진수
🧵 문자열 리터럴
"hello"
'hello'
`hello`
📦 객체 리터럴
{ name: "Kim", age: 20 }
📚 배열 리터럴
[1, 2, 3]
🔧 함수 리터럴
function (a, b) {
return a + b;
}
⚙️ 정규식 리터럴
/abc/i
5️⃣ 리터럴 vs 생성자
JavaScript에서는 같은 결과를 리터럴과 생성자 두 방식으로 만들 수 있습니다.
{} // 객체 리터럴
new Object() // 생성자 방식
[] // 배열 리터럴
new Array() // 생성자 방식
📌 리터럴 방식이 권장되는 이유
- 간결함
- 가독성
- 예측 가능한 동작
- 불필요한 객체 생성 방지
특히 원시값에서는 차이가 더 명확합니다.
"hi" === new String("hi"); // false
"hi"→ 문자열 리터럴 (원시값)new String()→ 객체