본문 바로가기

PWA

변수선언 (#4)

그동안 자바스크립트에서 변수를 선언할때 var키워드를 사용 했다면 ES6 부터는 var 대신 let과 const키워드를 사용합니다.

-var키워드와 함수 스코프-

var키워드는 함수 스코프(function scope)만 지원하고 블록스코프(block scope)는 지원하지 않습니다.

함수 스코프 유효범위 : 함수 내부

블록 스코프 유효범위 : 블록({}) 내부

#var 함수 스코프 예시

fnMyfunction();

function fnMyfunction() {

var apple =5;

console.log(apple); // var apple에서 선언한 5 출력

}

console.log(apple);//error

var 키워드로 선언한 apple 변수를 함수 외부에서 사용해 오류가 발생.

var 키워드는 블록 스코프를 지원하지 않으므로 블록 내부에서 var 키워드로 변수를 선언해도 블록 외부에서 사용 가능.

#var 블록 스코프 예시

var apple = 5;
{
 var apple = 3; //var 선언 변수는 블록스코프가 아니므로 재선언 가능.
console.log(apple); // 5출력
}
console.log(apple); // 3대신 5출력

-var키워드의 두가지 특징-

1. 블록스코프를 지원하지 않는다(무시한다)

2.같은 이름으로 중복선언 가능

함수 외부에서 선언한 변수는 모두 전역 변수처럼 사용 된다는뜻

중복으로 선언할수있는 의미는 기존 선언을 덮어쓴다는 의미임.

//var 키워드는 블록 스코프를 무시하기때문에 개발자의 실수로 인한 오류 발생 잦음, 디버깅 하기 까다로움

//ES6 부터는 벼수의 유효 범위를 명확하게 하고자 var 대신에 let과 const 키워드가 추가 됨.

-let, const 키워드와 블록 스코프-

let과 const 키워드는 블록 스코프를 지원함.

변수의 유효 범위를 블록 내부로 제한하므로 블록 외부에서는 사용 할 수 없음.

let 선언 변수는 변숫값을 언제든지 변경할 수 있지만, const 선언 변수는 한번 값을 할당할시 변경 불가능.

#let 변수 사용법

{
let 변수명;
let 변수명 = 값;
}

#const 변수 사용법

{
const 변수명 = 값;
}

#블록 스코프 예시

{
let apple = 3;
console.log(apple); // 3으로 출력
apple = 5; // let 함수의 경우 재선언 허용
console.log(apple); // 5 출력
let apple = 7; // 동일한 이름으로 중복 선언을 허용하지 않음으로 오류

const car; // 선언과 동시에 값 할당하지 않아서 오류
const carname = "하이브리드";
console.log(carname);
carname = "디젤카" // const 함수는 선언후 변경 불가능 하므로 오류
}
console.log(apple); // 블록 밖 오류.
console.log(carname); // 블록 밖 오류.

-모던 자바 스크립트에서 변수 사용 3원칙-

1. const를 가장 먼저 사용한다. 특히 변숫값을 변경할 필요가 없을때 사용

2. 만약 중간에 변숫값을 변경해야 한다면 const대신에 let을 사용한다

3. var는 ES6+에서는 사용하지 않는다. 다만 전역 변수가 꼭 필요할 떄 최상위 수준에서만 예외로 사용한다.

 

'PWA' 카테고리의 다른 글

화살표 함수 (#5)  (0) 2020.09.26
재활용할 수 있는 블록 함수(PWA 공부#3)  (0) 2020.09.20
PWA의 6가지 핵심기술 (PWA공부 #2)  (0) 2020.09.20
웹앱 프로그레시브 공부 #1  (0) 2020.09.20