LHJ

I'm a FE developer.

2.1 Types for JavaScript's primitive values

29 Sep 2020 » js

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로 나타날 수 있습니다.
자바스크립트는 또한 InfinityNaN을 숫자로 간주합니다.
숫자 유형은 자바스크립트가 숫자로 간주하는 모든 것을 캡쳐합니다.

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은 서로 다른 유형임을 기억하십시오.