book

[ you don’t know JS ] CH 01. 타입

kemut 2023. 4. 13. 22:37
  • ECMAScript 언어 타입에는 Undefined, Null, Boolean, String, Number, Object가있다.
  • 타입이란 자바스 크립트 엔진, 개발자 모두에게 어떤 값을 다른 값과 분별할 수 있는, 고유한 내부 특성의 집합 이다.
  • 거의 모든 자바스크립트 프로그램에서 강제변환이 일어나므로 타입을 확실하게 인지하고 사용하는 것이 중요하다.
    • 강제변환은 다양한 방식으로 일어난다.

 

내장 타입

  • null ( falsy, object )
  • undefined
  • boolean
  • number
  • string
  • object
  • symbol

 

function

  • object의 하위 타입
  • 함수에 선언된 인자 개수는 함수 객체의 length 프로퍼티로 알 수 있다.

 

배열

  • 숫자 인덱스를 가지며, length 프로퍼티가 자 동으로 관리되는 등의 추가 특성을 지닌, 객체의 하위 타입이라 할 수 있다.

 

값과 변수

  • 값에는 타입이 있지만, 변수엔 따로 타입이란 없다. 변수는 언제라도, 어떤 형태의 값이라도 가질수 있다.
    • 자바스크립트는 타입 강제를 하지 않는다.
  • 값이 없는 변수의 값은 undefined이며, typeof 결과는"undefined"다.

 

undefined와 undeclared

  • undefined → 접근 가능한 스코프에 변수가 선언되었으나 현재 아무런 값도 할당되지 않은 상태
  • undeclared → 접근 가능한 스코프에 변수 자체가 선언조차 되지 않은 상태
    • ex) b is not defined

 

typeof의 safe guard

  • 선언되지 않은 변수는 typeof를 하면 undefined로 나온다
// ERROR
if (variable) {
console.log( "디버깅을 시작합니다" );
)
// 이렇게 해야 안전하게 존재 여부를 체크할 수 있다.
if (typeof variable !== "undefined") { console.log( variable ) };
  • 임의로 정의한 변수를 쓰지 않더라도 이런 식으로 체크하는 것이 편리하다.