var 나이;
var 성별;
위와 같이 변수 만드는 걸 '선언'이라고 합니다.
var 나이 = 28;
var 성별 = "남자"; // (1)
----------------
var 나이;
나이 = 28;
var 성별;
성별 = "남자"; // (2)
위와 같이 변수에 값을 집어넣는 것을 '할당'이라고 합니다.
(1)번과 같이 선언과 할당을 같이할 수도 있고
(2)번과 같이 선언과 할당을 각각 따로 할 수도 있습니다.
function 함수(){
var 나이 = 28;
console.log(나이); // 가능
}
console.log(나이); // 불가능
var의 범위는 '함수'입니다. 위와 같이 함수 안에서 변수를 만들었을 경우에는 함수 안에서만 사용가능합니다.
밖에선 사용할 수 없고, 만약 밖에서 출력하려 한다면 '변수가 정의되지 않았습니다.'라는 에러를 출력하게 됩니다.
if(true) {
let 이름 = "ko"; // const도 마찬가지 입니다.
}
console.log(이름); // 없다고 나옵니다.
이처럼 let과 const는 모든 중괄호가 범위입니다. var보다 범위가 좁습니다.
var 나이 = 28 ;
var 이름 = "ko";
---------------
// 재할당
var 나이 = 30 ;
console.log(나이); // 30
var 이름 = "Kim";
console.log(이름); // kim
---------------
// 재선언 (사실 재할당과 재선언이 동시에 된 경우입니다.)
var 성별 = "남자";
var 직업 = "개발자";
let 직업 = "개발자";
const 가격 = 6000;
----------------
// 재선언
let 직업; // 에러가 발생합니다. const도 마찬가지입니다.
const 가격 = 6000;
가격 = 18000; // 에러가 발생합니다.