[6] JavaScript 자료형
2.5 자료형
-
null
과undefined
는 볼 때마다 헷갈려서 다시 한번 정리를 하기로 했다.undefined
는 자료형이 결정되지 않은 변수이고,
null
은 자료형은 객체인데, 비어있는 변수이다.undefined
: 변수를 선언만 하고 값을 할당하지 않음. 즉, 자료형이 결정되지 않은 상태이다. (선언하지 않은 변수도 콘솔이나 기타 메시지에는undefined
라고 뜨지만,undefined
라는 값을 가지는 것은 아니다.)null
: 변수를 선언하고, 'null
'이라는 빈값을 할당한 경우이다.
(이 '빈값'의 경우, 자료형에 따라 여러 가지가 있지만,null
은 객체형 데이터(ex: array, object)의 빈값을 의미한다. 문자열(string)의 경우''
, 숫자(number)의 경우0
이 빈값이고, 이들 빈값 모두는 if문에서false
로 형 변환된다.)
출처: null과 undefined의 차이 - Coding Story
빈값에 대해 이렇게 설명하니
null
과''
,0
이 형 변환되었을 때false
값을 갖는 이유가 이해되는 것 같다.
- 원시 자료형과 객체를 구분하는 기준을 알게 되어서 좋다.
객체형을 제외한 다른 자료형은 문자열이든 숫자든 한 가지만 표현할 수 있어서 원시(primitive) 자료형이라 부릅니다. 반면 객체는 데이터 컬렉션이나 복잡한 개체(entity)를 표현할 수 있습니다.
typeof 연산자
typeof Math // "object" (1)
typeof null // "object" (2)
typeof alert // "function" (3)
typeof undefined // "undefined"
Math
는 내장 객체.typeof null
의 결과는"object"
로 나오지만, 언어 자체의 오류.null
은 별도의 고유한 자료형을 가지는 특수 값으로 객체가 아니다.typeof
는 피연산자가 함수면"function"
을 반환한다. 하지만 원래 함수는 객체형에 속하지 함수형이 따로 있는 것이 아니다. 이 또한 오류이지만 유용하게 사용되기도 한다.
2.7 형 변환
- 자료형(type)에 따라서 결과가 달라질 수 있음으로 항상 형을 고려해야 한다.
- 형 변환에는 다양한 규칙들이 존재한다.
- 문자형으로 변환
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가 됩니다.
결론
- 자료형(type)에 따라서 결과가 달라질 수 있음으로 항상 형을 고려해야 한다.
- 규칙이 정말 다양하고 많다...
Author And Source
이 문제에 관하여([6] JavaScript 자료형), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@seochanh/00006저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)