JS&TS/Learn

Javascript_선언 (feat. const, let, var)

3.dev 2022. 6. 21. 02:07
반응형

자바스크립트의 기본을 알아보려하면

선언, 함수, 호출 등이 있다.

 

먼저 선언부터 알아보자

선언에는 여러종류가 있는데

const, let, var가 많이 사용된다.

 

다 같은 선언의 역할을 하는데 각각 다른 효과가 있다.

또 HTML에서 요소나 태그를 가져올 수 있다.

 

먼저 var는 어떤 숫자, 문자, 참거짓(boolean)등 여러 요소를 선언할때 사용된다.

1
2
3
4
5
var number = 10// number에 10이라는 숫자를 저장시킨다.
 
var text = "string"// text에 string이라는 문자를 저장시킨다.
 
var div = document.querySelector('#div'); // div에 HTML에서 'div'라는 id를 가진 태그를 저장시킨다.
cs

위처럼 선언해놓고 나중에 연산을 하거나 저장해놓은 문자나 HTML태그를 손쉽게 호출할 수 있다.

또 선언한 숫자나 내용을 바꾸고싶을땐 아래처럼 var를 제외하고 작성하면 된다.

1
2
3
var number = 10// number에 10이라는 숫자를 저장시킨다.
 
number = 20// numbber에 저장된 값을 20으로 변경한다.
cs

 

다음으로 let을 알아보자.

사실 var와 다를점은 없다.

 

1
2
3
4
5
let number = 10// number에 10이라는 숫자를 저장시킨다.
 
let text = "string"// text에 string이라는 문자를 저장시킨다.
 
let div = document.querySelector('#div'); // div에 HTML에서 'div'라는 id를 가진 태그를 저장시킨다.
cs

마찬가지로 선언하고 아래처럼 변경이 가능하다.

1
2
3
let number = 10// number에 10이라는 숫자를 저장시킨다.
 
number = 20// numbber에 저장된 값을 20으로 변경한다.
cs

 

다음 const는 어떤 선언을 하고 변경되지 않았으면 할때 사용된다.

1
2
3
4
5
const number = 10// number에 10이라는 숫자를 저장시킨다.
 
const text = "string"// text에 string이라는 문자를 저장시킨다.
 
const div = document.querySelector('#div'); // div에 HTML에서 'div'라는 id를 가진 태그를 저장시킨다.
cs

다만 const는 변경을 못하게 한다고 했으니 추후에 변경을 할수 없다.

 

그럼 const는 차별점이 있는데 var와 let은 왜 같은기능에 두개나 있을까?

var를 널리 사용했으나 이 var의 오점이 있다.

var로 선언한 것이 원하는 범위 외에서도 사용되거나 호출되는 것이다.

1
2
3
4
5
6
7
8
9
10
var foo = "This is String.";
 
 
if(typeof foo === 'string'){
    var result = true;  // if문 내에서 선언
else {
    var result = false// if문 내에서 선언
}
 
console.log(result);    // result : true
cs

이처럼 if문 내에서 선언된 경우에 if문 밖에서 호출되지 않기를 원하는 경우가 있다.

하지만 var의 경우 console.log로 보았을때 정상 호출되어 출력된다.

1
2
3
4
5
6
7
8
9
10
var foo = "This is String.";
 
 
if(typeof foo === 'string'){
    var result = true;  // if문 내에서 선언
else {
    var result = false// if문 내에서 선언
}
 
console.log(result);    // result : true
cs

위와같이 if문 내에서 선언된 것이 if문 밖에서도 정상 호출된다.

이를 원하지 않는 경우가 있기때문에 이를 오점이라고 본다.

1
2
3
4
5
6
7
8
9
10
var foo = "This is String.";
 
 
if(typeof foo === 'string'){
    let result = true;  // if문 내에서 선언
else {
    const result = false// if문 내에서 선언
}
 
console.log(result);    // result가 호출되지않아 error
cs

이처럼 let, const는 선언한 단락 밖에 있는 호출에서는 result를 불러올 수 없다.

 

여전히 var, let, const 취향대로 사용하는 개발자가 많다.

이런 차이점이 있다는 것만 알고 넘어가자.

반응형