[6] JavaScript 자료형

SeoChanhee·2020년 10월 12일
0

2.5 자료형

  1. nullundefined는 볼 때마다 헷갈려서 다시 한번 정리를 하기로 했다.

    undefined는 자료형이 결정되지 않은 변수이고,
    null은 자료형은 객체인데, 비어있는 변수이다.

    • undefined : 변수를 선언만 하고 값을 할당하지 않음. 즉, 자료형이 결정되지 않은 상태이다. (선언하지 않은 변수도 콘솔이나 기타 메시지에는 undefined라고 뜨지만, undefined라는 값을 가지는 것은 아니다.)
    • null : 변수를 선언하고, 'null'이라는 빈값을 할당한 경우이다.
      (이 '빈값'의 경우, 자료형에 따라 여러 가지가 있지만, null은 객체형 데이터(ex: array, object)의 빈값을 의미한다. 문자열(string)의 경우 '', 숫자(number)의 경우 0이 빈값이고, 이들 빈값 모두는 if문에서 false로 형 변환된다.)
    출처: null과 undefined의 차이 - Coding Story

    빈값에 대해 이렇게 설명하니 null'', 0이 형 변환되었을 때 false 값을 갖는 이유가 이해되는 것 같다.

  1. 원시 자료형과 객체를 구분하는 기준을 알게 되어서 좋다.

    객체형을 제외한 다른 자료형은 문자열이든 숫자든 한 가지만 표현할 수 있어서 원시(primitive) 자료형이라 부릅니다. 반면 객체는 데이터 컬렉션이나 복잡한 개체(entity)를 표현할 수 있습니다.

typeof 연산자

typeof Math	// "object"  (1)
typeof null	// "object"  (2)
typeof alert	// "function"  (3)
typeof undefined // "undefined"
  1. Math는 내장 객체.
  2. typeof null의 결과는 "object"로 나오지만, 언어 자체의 오류. null은 별도의 고유한 자료형을 가지는 특수 값으로 객체가 아니다.
  3. typeof는 피연산자가 함수면 "function"을 반환한다. 하지만 원래 함수는 객체형에 속하지 함수형이 따로 있는 것이 아니다. 이 또한 오류이지만 유용하게 사용되기도 한다.

2.7 형 변환

  1. 자료형(type)에 따라서 결과가 달라질 수 있음으로 항상 형을 고려해야 한다.
  2. 형 변환에는 다양한 규칙들이 존재한다.
  • 문자형으로 변환
  String(value)
  • 숫자형으로 변환
// 변환 규칙
  Number(undefined);	// NaN
  Number(null);		// 0
  Number("   123   "); // 123
  Number("123z");      // NaN ("z"를 숫자로 변환하는 데 실패함)
  Number(true);        // 1
  Number(false);       // 0
  • 불린형으로 변환
// 변환 규칙 (숫자 0, 빈 문자열, null, undefined, NaN과 같이 직관적으로도 “비어있다고” 느껴지는 값들은 false가 됩니다. 그 외의 값은 true로 변환됩니다.)

  Boolean(1);		// 숫자 1(true)
  Boolean(0);		// 숫자 0(false)
  Boolean("hello"); 	// 문자열(true)
  Boolean("");		// 빈 문자열(false)
  Boolean("0");		// true
  
  // 문자열 "0"과 " "같은 공백은 불린형으로 변환 시 true가 됩니다.


결론

  1. 자료형(type)에 따라서 결과가 달라질 수 있음으로 항상 형을 고려해야 한다.
  2. 규칙이 정말 다양하고 많다...


출처: 모던 JavaScript 튜토리얼

0개의 댓글