티스토리 뷰
변수의 범위
Global Scope | 전역변수, 외부에서 선언되어 어디든 접근 가능 | |
Local Scope | function scope | 함수내 정의된 변수는 함수 외부에서 접근 불가 |
block scope | 코드 블록내 정의된 변수는 블록 외부에서 접근 불가 |
var (function-scoped)
ES5까지 변수를 선언할 수 있는 유일한 방법은 var 키워드를 사용하는 것이었다.
var는 전역변수로,
전역 변수는 사용이 편리하다는 장점이 있지만 불가피한 상황을 제외하고 사용을 억제해야 한다.
전역 변수는 유효 범위(scope)가 넓어서 어디에서 어떻게 사용될 것인지 파악하기 힘들며, 비순수 함수(Impure function)에 의해 의도하지 않게 변경될 수도 있어서 복잡성을 증가시키는 원인이 된다.
따라서 변수의 스코프는 좁을수록 좋다.
ES6는 이러한 var 키워드의 단점을 보완하기 위해 let과 const 키워드를 도입하였다.
let / const (block-scoped)
let과 const 는 동일한 이름을 갖는 변수를 중복해서 선언 할 수 없으며,
변수를 중복 선언하면 문법 에러(SyntaxError)가 발생한다.
let과 const 의 차이점은 재할당 여부다.
let은 재할당이 자유로우나 const는 재할당이 금지된다.
아래 예제를 보면 좀 더 쉽게 이해 된다.
See the Pen Untitled by sueun (@su_nee) on CodePen.
정리
변수 선언에는 기본적으로 const를 사용하고, 재할당이 필요한 경우에 한정해 let 을 사용하는 것이 좋다.
그리고 객체를 재재할당이 필요한 경우에 한정해 let 을 사용한다. 이때, 변수의 스코프는 최대한 좁게 만든다.
재할당이 필요 없는 상수와 객체에는 const 를 사용한다.
'기초탄탄' 카테고리의 다른 글
[Vue] 'vue-cli-service'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. (0) | 2022.08.12 |
---|---|
[JavaScript] IE 브라우저 체크 (0) | 2022.07.07 |
[JavaScript] 문자열 비교하기 (0) | 2022.06.17 |
[JavaScript] typeof (0) | 2022.06.15 |
[PHP] PHP 개념 및 기본 문법 (0) | 2022.06.09 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- floating button
- 변수 선언
- codepen
- 변수 범위
- querySelectorAll
- scss
- getElement
- .attr
- toFixed
- 소스 강조
- 소스 가독성
- css
- 프론트엔드 면접
- 보기좋은 소스
- .open
- javascript
- includes
- 블로그 꾸미기
- 브라우저 체크
- .css
- querySelector
- 따라다니는 버튼
- toPrecision
- Color Scripter
- 우클릭 막기
- font awesome
- 정보처리기사
- getElementsByClassName
- 정보처리기사 실기
- 문자열 변환
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
글 보관함