개발/아롬 멘토링

[javascript] 변수와 타입

Flrea 2025. 3. 30. 15:38

변수의 선언

변수는 다음과 같은 형식으로 선언할 수 있다.

[선언 키워드] [변수명] = [값]

= (등호)를 사용해 초기화하는게 필수는 아니다.
변수의 이름으로는 유니코드 문자셋을 사용하기 때문에 한글로 된 변수명이나 연산자가 아닌 특수문자 만으로도 이름을 사용할 수 있다.

변수의 선언 키워드는 다음 세 가지가 있다.

var

가장 기본적인 변수. 이 키워드로 선언된 변수는 기본적으로 전역 범위를 갖는다. 반복문이나 조건문, 함수 안에서 var를 사용해 선언된 변수는 해당 범위 바깥에서도 사용할 수 있다.

let

블록 범위 변수. 이 키워드로 선언된 변수는 기본적으로 블록 범위를 갖는다. 반복문이나 조건문, 함수 안에서 let을 사용해 선언된 변수는 해당 범위 바깥에서 사용될 수 없다.

const

블록 범위 상수형 변수. 이 키워드로 선언된 변수는 let과 똑같이 블록 범위를 가지며, 값을 변경할 수 없다.

 

원시타입

최신 문법에서는 변수에 할당할 수 있는 타입을 원시 타입 7가지와 여러 객체타입으로 제한한다.

Boolean

true와 false로 선언하며, 참과 거짓 값을 의미한다.

var isTrue = false;
console.log(isTrue); // false
isTrue = true;
console.log(isTrue); // true

Number

배정밀도 64비트 부동소수점 형식. 쉽게말해 2^53부터 +2^53까지의 숫자를 의미하며, 소수도 Number에 해당한다.

var num = 9007199254740992; // 2의 53승
console.log(num);
var num = 9007199254740993;
console.log(num); //여기부터 근사치로 표현됨

BigInt

Number보다 범위가 큰 '정수'를 표현할 때 사용한다.

var big = 123456789012345678901234567890n;

String

길이가 있는 문자열. 인용부호 "나 '로 둘러싸야한다.

var s1 = "Hello"
var s2 = 'world'

Symbol

항상 고유함(primitive)이 보장되고 불변한 값. 주로 객체의 Key가 겹치지 않게 하기 위해 사용되며 Symbol() 함수로 생성한다.

let sym1 = Symbol();
let sym2 = Symbol();
console.log(sym1 === sym2); // sym1과 sym2는 서로 다름
let symA = Symbol("test");
let symB = Symbol("test");
console.log(symA === symB); // 항상 고유함이 보장됨

null과 undefined

둘 다 "값이 없음"을 표현할 때 사용하지만, 세부적인 사용처는 조금 다르다.

null

  1. 변수를 의도적으로 선언한 뒤 비워놓아야 할 때
  2. 함수에서 (원래는 반환을 해야 하지만)반환한 값이 없을때

undefined

  1. 변수를 선언만 함
  2. 함수가 무언가를 반환하지 않음

객체 타입

이외에는 전부 키-값 형태로 저장되는 '객체 타입'이다.

Object(JSON)

키-값 형태로 저장되며, 가변하다.

키는 string 또는 Symbol 형태여야 한다.

const obj = { "key1": "value1", "key2": 1234 }
console.log(obj.key1)
console.log(obj.key2)

Array(배열)

0개 이상의 변수를 담는 목록.

let datas = ["1234", 1234, { key: "1234" }]; // 한 배열에 여러 타입도 담을 수 있음
console.log(datas[0], datas[1], datas[2]); // 인덱싱 가능

함수, 클래스, etc...

reference

https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Grammar_and_types