그동안 자바스크립트에서 변수를 선언할때 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 |