Dev(기록 및 이론정리)/JavaScript
2.자바스크립 문법공부 ( 변수)
깔끔한청년
2021. 9. 26. 23:21

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