자바스크립트 유형

안녕하세요 여러분 👋

이것은 강의를 하면서 찍은 기사라기 보다는 노트에 가깝습니다. 이 기사에서는 JavaScript 유형과 typeof 연산자에 대해 설명합니다.


ES 사양에 따라 유형은 다음과 같이 정의됩니다.

“ECMAScript 언어 유형은 ECMAScript 언어를 사용하여 ECMAScript 프로그래머가 직접 조작하는 값에 해당합니다. "

따라서 유형에는 자바스크립트를 사용하여 우리가 조작할 수 있는 일종의 값이 있다는 자체를 꽤 많이 설명합니다.

우리가 가지고 있는 기본 유형에 대해 이야기해 봅시다.

한정되지 않은



정의되지 않은 값은 하나만 있습니다. 값이 할당되지 않은 모든 변수에는 undefined 값이 있습니다.

없는



Null 유형에는 null이라는 정확히 하나의 값이 있습니다. 이는 객체 값의 의도적인 부재를 나타냅니다.

부울



이것은 true 및 false의 두 가지 특정 값을 나타냅니다.



문자열 유형은 일반적으로 텍스트 데이터를 나타내는 데 사용됩니다. 이것은 단지 큰 따옴표 또는 작은 따옴표 문자열 리터럴입니다.

숫자



숫자 유형은 배정밀도 64비트 이진 형식 IEEE 754 값(-(2^53 − 1)과 2^53 − 1 사이의 숫자)입니다. 또한 +Infinity, -Infinity 및 NaN("숫자가 아님")의 세 가지 다른 값이 있습니다.

물체



개체는 속성 모음입니다. 각 속성은 데이터 속성 또는 접근자 속성입니다.

상징



Symbol 유형은 Object 속성의 키로 사용할 수 있는 모든 비 문자열 값의 집합입니다. 고유하고 변경할 수 없는 기본 값입니다.

주 - 함수와 배열은 Object 유형의 하위 유형으로 취급됩니다.

참고 - MDN 문서는 대부분의 브라우저에서도 지원되는 또 다른 기본 유형 BigInt를 언급하지만 아직 ES 사양에 추가되지 않았기 때문에 생략했습니다.

typeof(23423432423423423424234n) // 'bigint'


BigInt에 대해 자세히 알아보기 - here


유형



typeof 연산자를 사용하여 변수에 저장된 값의 유형을 확인할 수 있습니다.

몇 가지 예를 살펴보겠습니다.

var a;

typeof(a); // 'undefined'

a = 5;
typeof(a); // 'number'

a = "Apple";
typeof(a); // 'string'

a = true;
typeof(a); // 'boolean'

a = {};
typeof(a); // 'object'



여기서 주의할 점은 문자열 형식을 반환한다는 것입니다.

따라서 다음과 같은 코드가 있는 경우 -

if(typeof(a) === Number){
 ...
}


의도한 대로 작동하지 않을 것입니다. 이를 수행하는 올바른 방법은 숫자를 문자열로 사용하는 것입니다.

if(typeof(a) === 'number'){
 ...
}


까다로운 몇 가지를 살펴 보겠습니다.

typeof(doesntExist); // 'undefined'

var v = null;
typeof(v); // 'object'

v = function(){};
typeof(v); // 'function'

v = [1,2,3]
typeof(v); // 'object'



여기서 우리는 아직 선언되지 않았거나 존재하지 않는 변수의 유형이 '정의되지 않음'임을 알 수 있습니다.

'undefined'를 반환하는 typeof(undefined)와 달리 typeof(null)는 실제로 역사적 버그인 'object'를 반환합니다. 그리고 이제는 많은 레거시 앱이 이로 인해 중단되므로 수정할 수 없습니다.

함수는 유형이 아니지만 typeof()가 '함수'를 반환하지만 typeof([])가 '객체'를 반환하므로 배열의 경우는 그렇지 않습니다.


JS 주제에 대해 더 많은 메모를 게시할 예정이니 계속 지켜봐 주세요.

좋은 웹페이지 즐겨찾기