2.1 Types for JavaScript’s primitive values
JavaScript에는 여러 가지 기본 유형이 있습니다. :
- Booleans
- Strings
- Numbers
null
undefined
(void
in Flow types)
primitive values(원시값)은 언어에서 literal 값으로 나타납니다.
true;
"hello";
3.14;
null;
undefined;
또는 개체 생성자로 나타납니다.
new Boolean(false);
new String("world");
new Number(42);
Booleans
Booleans는 자바스크립트에서 true
, false
값입니다.
JavaScript는 또한 암시 적으로 다른 유형의 값을 부울로 변환 할 수 있습니다.
if (42) {} // 42 => true
if ("") {} // "" => false
Flow는 이러한 변환을 이해하고 if 문의 일부 및 기타 유형의 표현식으로 허용합니다.
0 == true // false
!0 == true // true
!0 === true // true
Boolean 유형과 비교할 땐 Boolean 유형이 아닌 값을 변환하여 적어야합니다.
Boolean과 boolean은 서로 다른 유형입니다.
boolean은true
또는false
와 같은 리터럴 값 또는a === b
와 같은 표현식의 결과입니다.
Boolean은 전역new Boolean(x)
생성자가 만든 래퍼 객체입니다.
Number
다른 많은 언어와 달리 자바스크립트에는 한 가지 유형의 숫자만 있습니다.
이러한 값은 42 또는 3.14로 나타날 수 있습니다.
자바스크립트는 또한 Infinity
와 NaN
을 숫자로 간주합니다.
숫자 유형은 자바스크립트가 숫자로 간주하는 모든 것을 캡쳐합니다.
Number와 number는 서로 다른 유형입니다.
number는 42 또는 3.14 처럼 리터럴 값이거나paseFloat(x)
와 같은 표현식의 결과입니다.
Number
는 전역new Number(x)
생성자에 의해 생성된 래퍼 객체입니다.
String
문자열은 자바스크립트에서 ""
또는 ''
로 감싸진 데이터를 말합니다.
JavaScript는 다른 유형의 값을 연결하여 암시적으로 문자열로 변환합니다.
"foo" + 42; // "foo42"
"foo" + {}; // "foo[object Object]"
"foo" + "foo"; // "foofoo"
"foo" + []; // "foo"
"foo" + String({}) // "foo[object object]"
"foo" + [].toString(); // "foo"
"" + JSON.stringify({}); // "{}"
String과 string은 서로 다른 유형임을 기억하십시오.