티스토리 뷰
1.변수 선언 방식은 총 3가지 가 있습니다.
# var,let,const 차이점 5가지
1.중복선언 가능여부
2.재활당 가능여부
3.변수 스코프 유효범위
4.변수 호이스팅 방식
5.전역객체 프로퍼티 여부
1.중복선언
1.var:중복선언이 가능하다 .
// 첫번째 변수 var a = 10; console.log(a); // 10
//두번째 변수 var a = 20; console.log(a); // 20
2.const,let : 중복선언 불가능
let a=10 ;
let b=10 ; // SyntaxError: Identifier 'a' has already been declared
2.재할당
1.var,let : 값의 재할당이'가능'한 변수다
var a =10;
a =20 ;
console.log (a)
let b = 10;
b = 20;
console.log(b); // 20
2.const: 값의 재할당 이'불가능' 한 상수다.
const c = 10;
c=20; // TypeError: Assignment to constant variable.
const 는 상수를 선언하는 키워드 입니다.
재할당값은 불가능하다 .
3.스코프
스코프는 유효한 참조 범위를 말한다.
1) 함수 레벨 스코프
var x =1;
if (true){
// x 는 전역변수이며 , 이미 선언된 전역변수 x가 있으며 x 변수는 중복선언된다.
var x =10 ;
}
console.log(x) // 10
var i =10 ;
for(var i=0; i<5; i++){
// i 는 전역변수이며 , 이미 선언된 전역변수 i 가 있으며 i 변수는 중복선언된다.
console.log(i) //0 1 2 3 4 5
}
console.log(i) //5
let foo =1; //전역변수
{
let foo=2; //지역변수
let bar =3; //지역변수
}
console.log(foo) //1
console.log(bar) // ReferenceError: bar is not defined
4.호이스팅
자바스클립트는 코드를 실행하기 전, 일종의 '코드 평가 과정'을 거치는데,
이 때 '변수 선언문'을 미리 실행두기 때문에 뒤에서 선언된 변수도 앞의 코드에서 참조할 수 있게 된다.
이를 변수 호이스팅이라고 한다.
4-1.var:변수 호이스팅이 발생
// foo 변수가 선언(1.선언단계)
// (2.초기화 단계)
console.log(foo);// undefined
//(3.할당 단계)
foo=123;
console.log(foo)
var foo
4-2.let,const 변수 호이스팅이 발생 하지만 다른방식으로 작동
let/const로 변수를 선언하는 경우,
코드 실행 전에는
1) 변수 선언
2) 초기화는 코드 실행 과정에서 변수 선언문을 만났을 때 수행이 가능하다.
console.log(bar); // ReferenceError: bar is not defined
let bar = 10;
5.전역객체 프로퍼티 여부 (정리예정입니다.)
반응형
'Dev(기록 및 이론정리) > JavaScript' 카테고리의 다른 글
1.식별자 네이밍 규칙 (모던 자바스크립트 Deep Dive) (0) | 2021.09.22 |
---|
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Vue Todo list
- dayjs
- babel
- Cli 오류
- Vue module 설치
- 시간 라이브러리
- FRONT-END
- router
- vue router
- 자바스크립트 문법
- lowdb
- 모던 자바스크립트
- const
- 자바스크립트 Basic
- Vuex
- 트리구조
- Moment js
- Vue예제
- lodash
- webpack-cli
- loader
- 프론트엔드
- 네이밍규칙
- VAR
- vue
- Wepack
- Tode list
- vue-cli
- Wepack-cli
- 재귀함수
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함