[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.)