일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- sass
- setTimeout
- z-index
- input
- togle
- Position
- TRANSITION
- animate
- EventListner
- position : fixed
- CSS
- scss
- 밀리초
- bootstrap
- vw
- css animation
- css selector
- form
- float : left
- 이벤트 버블링
- margin
- navbar
- display:none
- absolute
- JQuery
- val()
- transform
- 레이아웃
- Carousel
- hover
- Today
- Total
Simple Is Best
8. [ES6] 변수 본문
이번 포스팅에서는 JavaScript의 ES6에서 개정된 변수에 대해서 학습해 보도록 하겠습니다.
변수란?
: 데이터를 임시 저장하는 박스 (var, let, const)
아래에 제시된 3가지의 개념에 대해서 알아야 한다.
1. 변수의 선언
var 테스트; // 테스트라는 박스를 만들겠다. (선언)
2. 변수의 할당
테스트 = 20; // 아까 테스트라고 만든 박스에 20을 넣을거야! (할당)
3. 변수의 스코프(scope, 범위)
변수의 스코프
var의 scope는 함수 단위 let, const의 scope는 블록 단위
1. var 는 함수 내부에 선언된 변수만 지역변수로 인정하며 나머지는 전부 전역변수로 처리한다.
2. let과 const 는 중괄호가 들어가있는 모든 스코프 내의 변수들을 지역변수로 인정하고 처리한다.
if(true){
let let_test = 'let'; // 지역 변수로 취급됨
var var_test = 'var'; // 전역 변수로 취급됨
}
console.log(var_test); //var
console.log(let_test); //let_test is not defined
let은 블록스코프 내에서 선언 했으면 블록내에서만 작동 (지역 변수)
var는 함수스코프 내에서 선언하지 않으면 전역변수로 인정되기 때문에 쓸 수 있다.
☞ var 의 이러한 특성은 나중에 에러를 불러올 수 있는 유발인자이기 때문에 ES6문법에서 개정 되어 나온 것
예시 1.
함수에서 var 선언 ☞ var는 지역 변수로 선언되었기 때문에 함수 이외의 공간에서 사용 불가능
function test() {
var 나이 = 26;
}
console.log(나이); // 에러
예시 2.
전역에서 변수를 선언하고 함수에서 변수 호출 ☞ var 나이가 전역 변수에서 선언되었기 때문에 함수 내에서 사용 가능
var 나이 = 25;
function test() {
console.log(나이); // 25
}
변수 정리 테이블
지역 변수
var | 함수 스코프 | 재선언 O | 재할당 O |
let | 블록 스코프 | 재선언 X | 재할당 O |
const | 블록 스코프 | 재선언 X | 재할당 X |
▶ var : 재선언이 가능한 변수를 만들 때, 범위 : 함수 스코프(함수 내에서만 지역변수, 나머지는 모두 전역변수)
▶ let : 재선언이 불가능 (에러방지용), 범위 : {}, 블록 스코프내에서는 모두 지역변수
▶ const : 재선언 불가능 & 재할당 불가능, 범위 : {}, 블록 스코프내에서는 모두 지역변수
'JavaScript & JQuery' 카테고리의 다른 글
10. [jQuery] Animation - 2 (애니메이션 제작 관습) (0) | 2021.07.29 |
---|---|
9. [jQuery] Animation - 1 (feat. navbar) (0) | 2021.07.29 |
7.5. [jQuery] 다양한 이벤트 change, input (0) | 2021.07.27 |
7. [jQuery] 폼 공백 제출 막기 (feat. 조건문, preventDefault) (0) | 2021.07.27 |
6. [jQuery] ID, Class, Name 별로 input Value 가져오기 (0) | 2021.07.26 |