프로그래밍에서 프로그램이 처리할 수 있는 모든 것을 자료라 하며, 자료를 형태에 따라 나눈 것을 자료형이라 한다
크게 원시타입과 객체타입으로 나뉜다
원시타입에서 가장 기본적이면서 많이 사용하는 자료형은 Number, String, Bool 이다
데이터 타입이 필요한 이유
값은 메모리에 저장하고 참조할 수 있어야 한다
메모리에 값을 저장하려면 확보해야 할 메모리 공간의 크기를 결정해야 한다.
다시 말해, 몇 바이트의 메모리 공간이 필요한지 미리 알아야 낭비를 안할 수 있다.
예를 들어, 숫자 값 10을 변수에 저장할 때 저장하기 위해 메모리 공간을 확보한 다음, 확보된 메모리에 숫자 10을 2진수로 저장한다.
이런 처리를 하려면 숫자 값에 저장할 때 확보해야 할 메모리 공간의 크기를 알아야 한다
자바스크립트 엔진은 변수에 할당되는 값의 데이터 타입에 따라 확보해야 할 메모리 공간의 크기를 결정하고
결정된 크기의 메모리 공간 만큼을 확보한다
| 00000000 |
| 00000000 |
| 00000000 |
| 00000000 |
| 00000000 |
| 00000000 |
| 00000000 |
| 00001010 |
대충 위와 같은 느낌으로 64비트 부동소수점 형식으로 할당된다고 생각하면 편하다
실제로는 위 그림과는 다르다
식별자를 통해 값을 참조할때도 메모리 공간의 크기를 알아야 한다.
만약 참조할때 메모리 공간의 크기를 제대로 알지 못한다면 값이 훼손돼서 읽힌다
즉, 자바스크립트 엔진은 변수의 타입을 인식하고 해당 타입의 메모리 공간을 파악한 뒤 저장된 값을 읽어들인다.
문자열 자료형 (String)
텍스트 데이터들을 나타내는 데 사용하는 자료형이다
문자들의 집합을 문자열이라 한다
자바스크립트에서는 C랑 다르게 문자가 하나든 여러 개든 모두 문자열 자료형이라 한다
문자열은 원시 타입이고, 변경 불가능한 값이다.
문자열은 작은따옴표, 큰따옴표, 백틱으로 값을 감싼다.
'안녕하세요'
"안녕하세요"
"'문자열'입니다"
'"문자열"입니다'
다른 타입의 값과 다르게 문자열을 따옴표로 감싸는 이유는 키워드나 식별자 같은 토큰과 구분하기 위해서다
문자열 연산자
문자열도 기호를 사용해서 연산 처리를 할 수 있다
+ 기호를 사용하면 문자열을 연결할 수 있다.
이때 사용되는 + 를 문자열 연결 연산자라고 한다
'abc' + 'def' + 'ghi'
// 'abcdefghi'
문자열 내부의 문자 하나를 선택할 때는 문자 선택 연산자를 사용한다
배열에서 인덱싱하듯이 사용하면 된다
문자열[숫자]
'안녕하세요'[0] //안
'안녕하세요'[2] //하
'안녕하세요'[4] //요
문자열은 유사 배열 객체이면서 이터러블해서 배열과 비슷하게 각 문자에 접근이 가능하다
그러나 한 번 생성된 문자열은 읽기 전용 값으로 문자열 내부 구성값은 변경할 수 없다.
var str = 'string'
str[1] = 'T'
console.log(str) // string
문자열 내부의 문자 개수는 length 프로퍼티를 통해 접근할 수 있다.
'안녕'.length // 2
'HTML'.length // 4
숫자 자료형 (Number)
다른 언어와 달리 자바스크립트는 하나의 숫자 타입만 존재한다.
예를 들어, int와 float의 구분이 없다
ECMAScript 에 따르면 Number의 값은 부동소수점 형식을 따른다.
다시 말해 모든 수를 실수로 처리하며 정수 타입이 따로 없다.
그래서 숫자를 입력하면 바로 숫자 자료가 만들어진다.

숫자 연산자
숫자 자료형을 이용하면 기본적인 사칙 연산을 할 수 있다.
아래 연산자들은 이항 산술 연산자다.
const x = 10;
const y = 3;
console.log(x + y); // 13
console.log(x - y); // 7
console.log(x / y); // 3.333333
console.log(x * y); // 30
console.log(x ** y); // 승수 10 * 10 * 10
console.log(x % y); // 나머지 : 1
자바스크립트의 숫자 타입은 모든 수를 실수로 처리한다.
즉, 정수로 표시되는 수끼리 나누더라도 실수가 나올수 있다.
불 자료형 (Boolean)
참과 거짓 값을 표현할 때 불 자료형을 사용한다.
값은 true, false로 두가지다.
불 만들기
불 자료형 값을 만드는 가장 기본적인 방법은 비교 연산자를 사용하는 것이다.

문자열 자료형은 사전의 앞쪽에 있을수록 값이 작다
유니코드 순서상 앞쪽에 있을수록 값이 작다는 의미다.
불 부정 연산자
논리 부정 연산자는 !기호로 불 자료형 값을 반대로 표현한다

논리합/논리곱 연산자
&& : 논리곱
|| : 논리합
논리곱 연산은 두 값이 모두 true로 평가되어야 true 를 반환하고 논리합 연산은 두 값이 모두 false로 평가되어야 false를 반환한다

typeof
typeof 연산자로 자료형을 확인할 수 있다.
typeof(자료)

typeof 연산자는 결과로 string, number, boolean, undefined, function, object, symbol, bigint 를 반환한다
참고
deepdive , 혼자 공부하는 자바스크립트
'front-end > JavaScript' 카테고리의 다른 글
| [JavaScript] 생성자 함수 (0) | 2023.04.12 |
|---|---|
| [JavaScript] 객체 리터럴 (0) | 2023.04.10 |
| [JavaScript] 타입 변환 (0) | 2023.04.08 |
| [JavaScript] 변수 (1) | 2023.04.06 |
| [JavaScript] 표현식과 문 (0) | 2023.04.04 |