Javascript 변수와 상수

Jiwon Yoo·2023년 2월 20일
0

프론트엔드

목록 보기
5/38
post-thumbnail

변수란?

메모리에 데이터를 저장하는 방법으로, 이름이 있는 저장소라고 생각하면 된다.

let name;

변수를 선언(declaration)함으로 name이라는 이름을 가진 메모리 공간을 확보하고,

name = 'kim';

메모리 공간에 데이터를 할당(assignment)해 문자열 'kim'을 저장할 수 있다.
그리고 아래와 같이 변수 선언과 값 할당을 한 줄에 작성할 수도 있다.

let name = 'kim';

변수의 종류

var, let, const 이렇게 세가지 키워드가 있다.

var

var는 재선언, 재할당이 가능한 키워드다. let으로 선언한 변수와 유사하지만, 가장 오래된 변수 키워드로 요즘은 거의 쓰이지 않는다.

왜 더 이상 사용하지 않는걸까?

  1. var는 블록 스코프가 없다.
  • var로 선언한 변수의 스코프는 함수 스코프이거나 전역 스코프이다. 그 말은 블록 기준으로 스코프가 생기지 않기 때문에 블록 밖에서 접근 가능하다는 말이다.

1️⃣ var를 사용했을 때
if (true) {
var test = true; // 'let' 대신 'var'를 사용했습니다.
}
alert(test); // true(if 문이 끝났어도 변수에 여전히 접근할 수 있음)

let을 사용했을 때
if (true) {
2️⃣ let test = true; // 'let'으로 변수를 선언함
}
alert(test); // Error: test is not defined

블록 기준으로 스코프가 생겨야 보다 안전하게 충돌 위험없이 코드를 작성할 수 있다.

  1. var는 변수의 중복 선언을 허용한다.
    let과 달리 var로 같은 변수를 여러 번 중복으로 선언할 수 있다. 하지만 이미 선언된 변수에 var를 사용하면 두 번째 선언문은 무시된다.

1️⃣ var를 사용했을 때
var user = "Pete";
var user = "John"; // 에러 발생하지 않음
alert(user); // John

2️⃣ let을 사용했을 때
let user;
let user; // SyntaxError: 'user' has already been declared

let

let은 재선언이 불가능하고 재할당만 가능한 키워드다.

let str = "hello";
document.write(str); // hello

let str = "hi"; // let은 변수 재선언 불가능
document.write(str); // Error

str = "bye"; // let은 변수 재할당 가능
document.write(str); // bye

const

const는 상수라고도 하는데, 이는 변화하는 않는 변수이기 때문이다. 따라서 재선언, 재할당 모두 불가능하다.

const myBirthday = '18.04.1982';
myBirthday = '01.01.2001'; // error, can't reassign the constant!

가끔 대문자로 작성된 상수를 볼 수 있는데, 주로 대문자 상수는 '하드 코딩한' 값의 별칭을 만들 때 사용한다.

요약

let – 모던한 변수 선언 키워드
var – 오래된 변수 선언 키워드. 권장되지 않음.
const – 값을 변경할 수 없는 변수 선언 키워드(상수)

profile
새싹 개발자 🌱

0개의 댓글