nodejs

변수 - var, const, let

본이qq 2022. 9. 6. 08:31

const
 
 - 선언과 함께 값이 초기와 되며, 새로운 값으로 재할당이 되지 못하는 변수 입니다.
 - 변수 선언후 반드시 초기값이 할당되어야 합니다.
 - 스코프(중괄호로 묶인 영역) 안에서 같은 이름의 변수를 중복선언시 에러를 발생합니다
 - 중괄호 영역(스코프) 에 영향을 받아 스코프를 벗어나면 변수가 인식되지 못합니다.
 - 에러내용 ( 변수이름 is not defined )
const y = 3;
console.log(y);
// y = '홍길동';  // 에러
if( true ){
    const b = 3;
}
console.log(b);  // 에러

 
let
 
 - 재할당이 가능한 변수입니다.
 - const 와 같이 반드시 선언후 사용해야 합니다
 - 스코프 안에서 같은 이름의 변수를 중복선언시 에러를 발생합니다
 - 초기값할당 없이 선언된 변수의 최초값은 undefined 입니다
 - 중괄호 영역(스코프) 에 영향을 받아 스코프를 벗어나면 변수가 인식되지 못합니다.
 - 에러내용 ( 변수이름 is not defined )
 

var
 
 - 선언, 할당, 사용이 위치와 상관없이 자유롭습니다.
 - 스코프에 상관없이 값의 접근이 가능합니다.
 - 같은 스코프 안에서 중복 선언도 가능합니다. 이때 마지막에 대입된 값을 현재값으로 인식합니다
 - 이와 같은 특성으로 구조가 복잡한 함수내에서는 현재값을 유추하는데 다소 불편함이 있습니다
 - 값이 변경이 자유로워서 의도한 값의 저장 및 유지가 실패할 가능성이 있습니다
 - 함수의 영역을 벗어나는 스코프에만 영향을 받습니다.
var x = 3;
console.log(x);
x = '홍길동';
console.log(x);
if( true ){
    var a = 3;
}
console.log(a);

* 변수 선언과 선언키워드 별 사용의 방향
 
 1. 변수 선언에는 기본적으로 const를 사용하고, 재할당이 필요한 경우에 한정해 let 을 사용하는 것을 권장합니다.
 - 객체를 재할당하는 경우는 생각보다 흔하지 않으므로, 객체 변수 또한 const를 사용하는것을 권장하며, const 를 사용하면 의도치 않은          재할당을 방지해 주기 때문에 데이터의 안전을 보장 받을 수 있습니다.
 
 2. 재할당이 필요한 경우에 한정해 let 을 사용합니다. 이때, 변수의 스코프(영역)는 최대한 좁게 만드는것을 권장합니다. 재할당이 필요 없는 상수와 객체에만 const를 사용합니다