본문 바로가기

개발/Front-end

[JavaScript] 자바스크립트 변수 선언 - var, let, const / 자료형

 

< 자바스크립트 변수 선언 >

 

 

1. var

- 중복 선언 가능 / 재할당 가능

- functionScope로 변수가 선언된 함수영역 내에서 사용 가능

- 장점 : 기존의 값을 신경쓰지 않아도 되서 편하다

- 단점 : 변수명이 겹치거나 하면 의도치않게 갑싱 변경될 수 있기 때문에 문제가 발생할 가능성이 있음

<script>
  var userId = 'user01'; // 변수를 선언하는 키워드
  console.log(userId); // 콘솔창에 user01 출력 

  var userId = 'user02';
  console.log(userId); // 콘솔창에 user02 출력 
  // 새로운 값을 만나면 기존의 값이 바뀜

  userId = 'user03'; // 재할당
<script>

 

2. let

- 중복 선언 불가능 / 재할당 가능

- 변수가 선언된 블럭{ } 내에서만 사용 가능

<script>
    let userPwd = 'pass01';
    console.log(userPwd);

    /* 중복선언 불가능
    let userPwd = 'pass02';
    console.log(userPwd);
    */

    userPwd = 'pass03'; // 재할당
    console.log(userPwd);
</script>

 

3.  const

- 중복 선언 불가능 / 재할당 불가능 

- Java의 상수같은 개념, 한 번 초기화된 값 변경 불가능

- 변수가 선언된 블럭{ } 내에서만 사용 가능

<scipt>
   const userName = '홍길동';
   console.log(userName);

   /* 중복선언 불가능 
   const userName = '김길동';
   console.log(userName);
   */

   /* 재할당 불가능
   userName = '양길동';
   console.log(userName); // TypeError: Assignment to constant variable.
   */
</script>

 

 


< 자바스크립트 자료형 >

 

- 자바스크립트에서는 변수 선언 시 자료형을 별도로 지정하지 않음

- 자료형의 개념이 없는 것은 아님

- 변수에 대입되는 값(리터럴)에 따라 자료형이 자동으로 결정됨 => 타입 추론

string (문자열)
number (숫자)
boolean (논리값)
object (객체)
function (함수)
undefined (초기화 되지 않은 변수)

- 자료형 확인 함수 : typeof(변수명)