-
[Javascript] var 변수의 특징과 const, let 의 차이점IT&컴퓨터공학/Javascript 2021. 1. 18. 22:46
var
1. function 단위의 scope 를 가진다.
var str = "hello !"; function func(){ var str = "hello in function !" console.log(str); } console.log(str); // 결과 : hello ! func(); // 결과 : hello in function !
- 위의 코드에서 볼 수 있듯이 function 안에있는 var 변수의 유효범위는 ' function 내 ' 이다
var str = "hello !"; if(true){ var str = "hello in if sentence!"; } console.log(str); // 결과 : hello in if sentence!
- var 변수의 유효범위는 { } 안이 아니라 function 내이므로 , 위의 예제의 str 이 { } 바깥에서도 변경되었다
- 즉, 위의 str = "hello !" 가 없더라도 , if문 안의 str이 마치 전역변수처럼 사용될 수 있다
2. 한번 선언된 변수를 다시 선언 할 수 있다.
var name="aa"; console.log(name); var name ="bb"; console.log(name);
3. 선언 전에 사용할 수 있다. 왜 ? - 호이스팅 때문에. 그러나 선언만 호이스팅 되고 할당은 호이스팅 되지 않으므로 undefined 로 찍힌다.
console.log(name); // undefined; -> 즉 오류가 뜨진 않는다 var name = "aa";
이러한 var 의 단점을 보완하기 위해서 추가 된 변수 선언방식이 let 과 const 이다.
let / const
let name="aa"; console.log(name); let name ="bb"; console.log(name);
해당 코드는 오류가 발생한다. 즉 변수 재선언이 되지않는다. ( const 도 마찬가지 )
그렇다면 let 과 const 의 차이점은 무엇인가 ?
let name="aa"; console.log(name); name = "bb"; console.log(name);
let 은 위와같이 변수 재할당이 가능하다
const name="aa"; console.log(name); name = "bb"; console.log(name);
그러나 let을 const 로 바꾼 위 코드는 오류를 생성한다. 즉 const 는 변수 재할당이 불가능하다.
'IT&컴퓨터공학 > Javascript' 카테고리의 다른 글
[Javascript] 콜백지옥을 해결할 수 있는 Promise (0) 2021.01.21 [Javascript] callback 함수와 callback 지옥 (0) 2021.01.21 [Javascript] 화살표 함수 와 일반 함수 (0) 2021.01.18 [JAVASCRIPT]9. window 라는 객체 , document 와 DOM (0) 2020.04.14 [JAVASCRIPT]8. null 과 undefined 의 차이점 (0) 2020.04.13 댓글