자바스크립트의 모든 값은 데이터 타입을 갖고 자바스크립트에서는 7개의 데이터 타입을 제공한다.
자바스크립트에서는 독특하게 하나의 숫자 타입만 존재한다.
모든 수를 실수로 처리하며, 정수만 표현하기 위한 데이터 타입은 존재하지 않는다.
2진수던 8진수던 16진수이던 값들을 참조하면 결국 10진수로 해석된다.
자바스크립트의 특별한 세가지 숫자 타입이 있는데 이는 Infinity, -Infinity, NaN이다.
문자열은 0개 이상의 16비트 유니코드 문자(UTF-16)의 집합으로 전 세계 대부분의 문자를 표현할 수 있다.
문자열은 작은따옴표(’’), 큰따옴표(””) 또는 백틱(``)으로 텍스트를 감싼다.
자바스크립트에서 문자열은 불변하다.
자바스크립트의 불변성
자바스크립트에서 문자열은 "불변(immutable)"하다는 것은, 한 번 생성된 문자열은 변경될 수 없다는 뜻입니다. 즉, 문자열의 특정 위치에 있는 문자를 다른 문자로 바꾸거나, 문자열에 새로운 문자를 추가하거나 제거하는 등의 작업을 직접적으로 할 수 없습니다.
예를 들어 아래와 같은 코드를 실행해보면 이해할 수 있습니다.
let str = "Hello";
str[0] = 'h';
console.log(str);// 출력: "Hello"
위 코드에서 'H'를 'h'로 변경하려고 시도했지만, 실제로 str
변수의 값이 변경되지 않았습니다. 이는 자바스크립트에서 문자열이 불변하기 때문입니다.
하지만 이것이 우리가 전혀 새로운 값을 가진 새로운 문자열을 만들지 못한다는 것을 의미하지는 않습니다. 예를 들어, 아래와 같이 기존의 str
변수에 새로운 값을 할당하는 것은 가능합니다
let str = "Hello";
str = 'hello';
console.log(str);// 출력: "hello"
ES6부터 도입된 새로운 문자열 표기법이다.
템플릿 리터럴은 멀티라인 문자열, 표현식 삽입, 태그드 템플릿 등 편리한 문자열 처리 기능을 제공한다.
템플릿 리터럴은 백틱을 사용한다.
var template = `Template literal`;
let a = "a"
let b = "b"
console.log(`hello ${a} ${b}.`); // hello a b.
표현식에 연산도 넣을 수 있다.
지금까지 알아본 데이터 타입은 왜 필요할까??