JS(Java Script) - var, let, const, JS타입

RYU·2025년 4월 16일

웹 기초

목록 보기
17/46

var (전통적인 변수 선언)

  • var는 자바 스크립트에서 가장 오래된 변수 선언 키워드이다.
  • 재선언과 재할당이 모두 가능하다.

1.함수 레벨 스코프

  • var로 선언된 변수는 선언된 함수 내에서만 유효하며, 함수 외부에서는 접근할 수 없다.
  • 하지만, 함수(function)가 아닌 블록(ex. if문, for문 등)내에서 선언된 경우에는 블록 밖에서도 접근할 수 있다.

2.호이스팅

  • var로 선언된 변수는 선언 전에 사용할 수 있다. 즉, JS가 var변수를 코드의 최상단으로 끌어올린다는 것이다.

  • 호이스팅이 동작되는 현상으로 인하여 예상치 못한 오류를 발생시킬 수 있으므로 개발시 추천하지 않는 키워드이다.

<예시>


let (블록 레벨 변수 선언)

  • let은 더 엄격하고 현대적인 변수 선언 방식이다.

1.블록 레벨 스코프

  • let으로 선언된 변수는 블록(함수, if문, for문, while문 등)내에서만 유효하다.

2.호이스팅 방지

  • let으로 선언된 변수는 선언 전에 접근할 수없다.


const (상수 선언)

  • const한 번 할당하면 변경할 수 없는 값을 선언할때 사용한다.

1.블록 레벨 스코프

  • 선언된 변수는 let과 동일하게 선언된 블록 내에서만 유효하다.

2.호이스팅 방지

  • const로 선언된 변수는 선언 전에 접근할 수 없다.

3.재할당 불가능

  • 한 번 할당된 값은 변경할 수 없다.

    참조링크


JS 타입

JS 타입에는 기본 자료형(원시형)과 객체 자료형(참조형)으로 구분이 된다.

기본 자료형(원시형)

  • 객체를 제외한 모든 타입은 불변 값(원시 값)을 정의한다.
  • 값이 생성된 후에 그 값을 변경할 수 없다.
  • 다른 변수에 값을 할당하거나 함수 인자로 넘길 떄, 값을 복사하여 전달한다. (pass by value)

기본 자료형의 종류

1.Number

  • 정수 및 부동 소수점 숫자

  • 숫자형과 관련된 대표적인 연산은 사칙연산(+, -, * , /)이다.

  • 숫자형엔 일반적인 숫자 외에 Infinity, -Infinity, Nan같은 '특수 숫자 값'포함된다.

  • NaN: 계산 중에 에러가 발생했다는 것을 나타내주는 값

    • 부정확하거나 정의되지 않은 수학 연산을 사용하면 계산 중에 에러가 발생하면 NaN이 반환된다.

2.BigInt

  • Number의 안전 한계를 넘어서는 큰 정수도 안전하게 저장하고 연산할 수 있다. -> 길이에 상관없이 정수를 나타내는게 가능하다.

  • BigInt형 값은 정수 리터럴 끝에 n을 붙이면 된다.

3.String

  • 문자형은 따옴표("")로 묶는데, 3가지 종류가 있다.

    • 큰따옴표(" "), 작은따옴표(' '), 역따옴표(``)
  • 역따옴표(백팅,그레이브)로 변수나 표현식을 감싼 후 ${...}안에 넣어주면, 원하는 변수나 표현식을 문자열 중간에 손쉽게 넣을 수 있다.

  • 따옴표나 작은따옴표를 사용하면 중간에 표현식을 넣을 수 없다.

4.Boolean

  • true/false

  • 값이 없거나 0, -0, null, false, undefined, 빈 문자열("")이라면 객체의 초기값은 false가 된다.

  • 문자열"false"를 포함한 그 외 모든 다른 값은 초기값을 true로 설정한다.

  • 비교 결과를 저장할 떄도 Boolean을 사용한다.

5.Null

  • '존재하지 않는 값', '비어 있는 값', '알 수 없는 값'
  • 어떤 값이 의도적으로 비어있음을 표현
    ex) let age = null; -> 나이를 알 수 없거나 그 값이 비어있음을 뜻한다.

6.Undefined

  • 값이 할당되지 않은 상태
  • 변수는 선언했지만, 값을 할당하지 않았다면 해당 변수에 undefined가 자동으로 할당된다.
  • 변수가 비어있거나 알 수 없는 상태라는 걸 나타내려면 null을 사용해야 한다.
  • undefined는 값이 할당되지 않은 변수의 초기값을 위해 예약어로 남겨둬야 한다. (의도적으로 할당 x)

null은 의도적으로 비운 것이고, undefined는 컴퓨터가 부여하는 것!

7.Symbol

  • 유일하고 변경이 불가능한 기본값
  • 생성자가 symbol 원시값을 반환하는 내장 객체
  • 객체의 고유한 식별자를 만들 때 사용한다.
  • 객체에 속성을 추가할 때 고유한 키를 부여하여 다른 코드와 충돌하지 않도록 할 떄 많이 쓰인다.


객체 자료형(참조형)

  • 메모리 주소를 복사시키며, 값 자체는 복사되지 않아 같은 객체를 참조하게 된다.

객체(Object)

  • 객체 : 식별자로 참조할 수 있는 메모리에 있는 값
  • 객체형은 특수한 자료형이다.
  • 데이터 컬렉션이나 복잡한 개체(entity)표현할 수 있다.
  • 객체는 중괄호{ }를 이용해 만들 수 있고, 중괄호 안에는 '키(key):값(value)'쌍으로 구성된 프로퍼티(property)를 여러 개 넣을 수 있다.
  • 키에는 문자형, 값에는 모든 자료형이 허용된다.

0개의 댓글