Javascript

javascript 변수2 (var, let, const)

wizi 2021. 4. 22. 15:05

1. var

// myVarVariable는 여기서에서 사용 할 수 있습니다.

for(var myVarVariable = 0; myVarVariable < 10; myVarVariable++){
	//myVarVariable는 이제 함수 전체에서 사용 할 수 있습니다.
}

// myVarVariable는 여기에서 사용 할 수 있습니다.

var은 ECMA2015 이전에 사용되었던 가장 일반적인 변수 선언 키워드입니다.

var로 선언된 변수는 변수가 선언된 함수 블록에서 사용할 수 있습니다.

여기서 블록이라는 말은 한 쌍의 중괄호{} 로 구성되어 있는 구절을 의미합니다.

var name = "javascript";
console.log(name);

var name = "changed";
console.log(name);

//출력 : 
//javascript
//changed

위의 코드를 살펴보면 var 로 선언된 name이라는 변수가 두번이 할당되는 것을 볼 수 있습니다.

다른 언어에서는 오류가 떠야하지만 javascript의 var키워드는 이를 다시 재할당하게 됩니다.

변수 스코프나 변수 재할당으로 인해 오류가 생기는 것을 방지하기 위해 ECAM2015부터는 

let 및 const 선언을 통해 블록 범위 변수를 만들 수 있습니다.

 

2. let

// myLetVariable은 여기에서 보이지 않습니다.

for(let myLetVariable = 0; myLetVariable < 5; myLetVariable++){
	// myLeyVariable은 여기에서 유효합니다.
}

// myLetVariable은 여기에서 보이지 않습니다.

var 대신 let을 사용하게 되면 블록 유효 범위 변수가 선언 됩니다.

이 경우 let변수는 변수가 포함 된 함수 블록에서만 유효하게 됩니다.

위의 코드에서는 for문 내부에서만 유효한 변수가 되겠네요!

 

let name = "wizi";
console.log(name);

let name = "wwwi";
console.log(name);

그렇다면 위와 같은 코드를 사용하게 되면 어떻게 될까요?

let name = "wwwi";
    ^

SyntaxError: Identifier 'name' has already been declared
    at Module._compile (internal/modules/cjs/loader.js:891:18)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
    at Module.load (internal/modules/cjs/loader.js:811:32)
    at Function.Module._load (internal/modules/cjs/loader.js:723:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10)
    at internal/main/run_main_module.js:17:11

name이라는 변수는 이미 선언이 되어있다면서 오류가 발생하게 됩니다. 

앞서 본 var과는 다른 결과가 나오는 것을 확인할 수 있습니다.

var과는 다르게 let변수는 변수이름 재선언을 허용하지 않습니다.

let name = "wizi";
console.log(name);

name = "wwwi";
console.log(name);

하지만 변수값을 재할당하는 경우에는 허용이 됩니다. 위코드를 실행시켜보면

wizi
wwwi

다음과 같은 출력값을 얻을 수 있습니다. 이점은 뒤에 나올 const 변수와 연관이 있습니다.

 

3. const

마지막 변수 선언 키워드 const 입니다.

let 변수와 마찬가지고 ECMA2015부터 지원하는 변수 선언 키워드입니다. 

그러면 앞서 말한 var, let과의 차이점을 알아볼까요?

const Pi = 3.14 // 변수 Pi에 값 할당
Pi = 1; //const로 설정된 변수는 변경 불가로 인해 애러가 발생.

const는 변수가 선언된 함수 블록에서 사용할 수 있습니다.

하지만, const 변수 특성상 값이 한번 할당 되면 그 값을 변경 할 수 없습니다.

어디에 사용하면 좋을까요?

값이 바뀌면 안되는 값들을 const로 선언을 해놓으면 코드를 짜다가 값을 변경하는 오류를 범하지 않겠죠?

 

여기까지 javascript의 변수 선언에 대해서 알아보았습니다!

'Javascript' 카테고리의 다른 글

Javascript Closure  (0) 2021.11.01
[javascript] ?. 옵셔널 체이닝 연산자  (0) 2021.08.27
javascript 변수  (0) 2021.04.01
puppeteer - javascript로 크롤링을 해보자  (6) 2021.03.01