변수란 변경 가능한 데이터가 담길 수 있는 공간, 그릇이다. 어떤 변수를 선언하면 컴퓨터는 메모리에서 a라는 변수명을 가진 주소를 검색해 해당 공간에 담긴 데이터를 반환한다.
let a; // 변수 선언
var
, const
, let
키워드로 할 수 있다.선언→초기화
단계를 거쳐 수행된다.var name = "mark"
console.log(name);
var name = "markya"
console.log(name)
let
과 const
가 있다.let name = "mark"
let name = "markya" // 'name' has already been declared
// 변수 재할당
let name = "mark"
name = "markya"
// 변수 재할당
const name = "mark"
const name = "markya"
console.log(name) //'name' has already been declared
name = "markya"
console.log(name) // Uncaught TypeError: Assignment to constant variable.
function scope(){
const a = 0;
let b = 0;
var c = 0;
// {} 증괄호 안에 든 내용을 블럭이다.
if(a === 0){ // 코드 블럭
const a = 1;
let b = 1;
var c = 1;
console.log(a, b, c); // 1, 1, 1
}
// var는 함수 단위라서 if문 밖에서 선언한 값이 변한다.
// let과 const로 선언한 겂은 어떤가요? if문 안쪽 내용이 바깥 내용에 영향을 주지 않는다. console.log(a, b, c); 0,0,1
}
TIP : 모든 변수는 const로 선언하고, 변경 여지가 있는 경우 let으로 선언
let a; // 변수 a 선언
a = 'abc' // 변수 a에 데이터 할당
let a = 'abc' // 변수 선언과 할당을 한 문장으로 표현
변수명이 데이터를 저장하는 방식은 직접 데이터를 저장하는 것이 아니라 해당 데이터를 가진 주소값을 저장하는 것이다!