티스토리 뷰

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.전역객체 프로퍼티 여부 (정리예정입니다.)

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함