Web/JavaScript

[중급 JavaScript1] 변수

brotoo 2021. 11. 16. 14:24

1. var

1) var와 let의 차이

let의 경우 선언을 뒤에해주면 변수 사용이 불가능하다.

console.log(name); // reference error -> Temporal Dead Zone (TDZ)영역에 있으므로 에러처리

let name = 'Mike';

단, var을 사용하면 사용 가능하다.

console.log(name); // 호이스팅. 

var name = 'Mike';

 - 변수의 기본 단계

 (1) 선언 단계 

 (2) 초기화 단계

 (3) 할당 단계

 

 = var의 경우 선언 - 초기화 동시, 할당은 분리되어 진행 

 = let의 경우 선언, 초기화, 할당 단계 분리되어 진행

 = const 의 경우 선언 - 초기화 - 할당이 동시에 진행 가능

 

let name;
name = 'Mike';

var age;
age = 30;

const gender; // 에러 발생 - 선언하며 할당을 하지 않았기 때문임.
gender = 'male'

2) 스코프

var : 함수 스코프 (함수 내에서 선언된 변수만 그의 지역변수가 되고 다른 곳에선 전역변수가 된다.)

let, const : 블록 스코프 ( if, for, while, try/catch 문, 함수 등 블록 내에서 선언된 변수는 블록 내에서만 유효, 외부에서 접근 불가)

 

const age = 30;

if(age > 19) {
	var txt = '성인'; // 블록 바깥에서도 사용 가능
    let txt2 = '가능'; // 블록내에서만 사용 가능
   }

console.log(txt);
function add(n1, n2){
	var result = n1 + n2; // 함수 내에서만 사용 가능
    }
 
add(2,3);

console.log(result); // 이 경우 에러 발생

tip 가급적이면 함수 사용시, var는 사용하지 않고 let, const만 사용하는 것을 권장

'Web > JavaScript' 카테고리의 다른 글

[중급 JavaScript2] 생성자 함수  (0) 2021.11.16
[Java Script 1 ] JS 기본 문법  (0) 2021.11.16