JavaScript typeof

JavaScript typeof

JavaScript에서 값을 포함할 수 있는 5가지 다른 데이터 타입이 있습니다:

  • string
  • number
  • boolean
  • object
  • function

6가지 유형의 객체가 있습니다:

  • Object
  • Date
  • Array
  • String
  • Number
  • Boolean

또한 값을 포함할 수 없는 2가지 데이터 타입이 있습니다:

  • null
  • undefined

typeof 연산자

사용할 수 있습니다 typeof 연산자로 JavaScript 변수의 데이터 타입을 결정할 수 있습니다。

예제

typeof "Bill"                 // "string"를 반환
typeof 3.14                   // "number"를 반환
typeof NaN                    // "number"를 반환
typeof false                  // "boolean"를 반환
typeof [1,2,3,4]              // "object"를 반환
typeof {name:'Bill', age:19}  // "object"를 반환
typeof new Date()             // "object"를 반환
typeof function () {}         // "function"를 반환
typeof myCar                  // "undefined"를 반환 *
typeof null                   // "object"를 반환

직접 테스트해 보세요

주의하세요:

  • NaN의 데이터 타입은 숫자입니다
  • 배열의 데이터 타입은 객체입니다
  • 날짜의 데이터 타입은 객체입니다
  • null의 데이터 타입은 object입니다
  • 정의되지 않은 변수의 데이터 타입은 undefined *
  • 할당되지 않은 변수의 데이터 타입도 undefined *

사용할 수 없습니다 typeof JavaScript 객체가 배열(또는 날짜)인지 확인하기 위해 사용됩니다。

원시 날짜

원시 데이터 값은 추가 속성과 메서드가 없는 단순한 데이터 값을 의미합니다。

typeof 연산자는 다음 중 하나의 원시 데이터 타입을 반환할 수 있습니다:

  • string
  • number
  • boolean
  • undefined

예제

typeof "Bill"              // 반환 "string"
typeof 3.14                // 반환 "number"
typeof true                // 반환 "boolean"
typeof false               // 반환 "boolean"
typeof x                   // 반환 "undefined" (x에 값이 없을 때)

직접 테스트해 보세요

복잡한 데이터

typeof 연산자는 두 가지 복잡한 타입 중 하나를 반환할 수 있습니다:

  • function
  • object

typeof 연산자는 객체와 배열 및 null에 대해 "object"를 반환합니다。

typeof 연산자는 함수에 대해 "object"를 반환하지 않습니다。

예제

typeof {name:'Bill', age:19} // 반환 "object"
typeof [1,2,3,4]             // 반환 "object"("array"가 아닙니다,아래 예제를 참조하세요)
typeof null                  // 반환 "object"
typeof function myFunc(){}   // 반환 "function"

직접 테스트해 보세요

typeof 연산자는 배열에 대해 "object"를 반환합니다 "object"، 왜냐하면 JavaScript에서 배열은 객체이기 때문입니다.

typeof의 데이터 타입

typeof 연산자는 변수가 아닙니다. 그것은 단순히 연산자입니다. 연산자 (+ - * /)는 어떤 데이터 타입도 가지지 않습니다.

하지만,typeof 연산자는 항상문자열을 반환합니다(연산자의 타입을 포함합니다)。

constructor 속성

constructor 속성은 모든 JavaScript 변수의 생성 함수를 반환합니다.

예제

"Bill".constructor                // 반환 function String()  {[원시 코드]}
(3.14).constructor                // 반환 function Number()  {[원시 코드]}
false.constructor                 // 반환 function Boolean() {[원시 코드]}
[1,2,3,4].constructor             // 반환 function Array()   {[native code]}
{name:'Bill',age:19}.constructor  // 반환 function Object()  {[native code]}
new Date().constructor            // 반환 function Date()    {[native code]}
function () {}.constructor        // 반환 function Function(){[native code]}

직접 테스트해 보세요

constructor 속성을 확인하여 객체가 배열 객체인지 확인할 수 있습니다. (包含 "Array" 단어):

예제

function isArray(myArray) {
  return myArray.constructor.toString().indexOf("Array") > -1;
}

직접 테스트해 보세요

또는 더 간단하게, 객체가 "Date" 객체인지 확인할 수 있습니다.배열 함수

예제

function isArray(myArray) {
  return myArray.constructor === Array;
}

직접 테스트해 보세요

constructor 속성을 확인하여 객체가 날짜 객체인지 확인할 수 있습니다. (包含 "Date" 단어):

예제

function isDate(myDate) {
  return myDate.constructor.toString().indexOf("Date") > -1;
}

직접 테스트해 보세요

또는 더 간단하게, 객체가 "Date" 객체인지 확인할 수 있습니다.날짜 함수

예제

function isDate(myDate) {
  return myDate.constructor === Date;
}

직접 테스트해 보세요

Undefined

JavaScript에서 값이 없는 변수의 값은 undefined입니다. 타입도 undefined

예제

let car;    // 값은 undefined, 타입도 undefined입니다.

직접 테스트해 보세요

그 값을 설정하여 undefined를 비워서 어떤 변수도 비워질 수 있습니다. 타입도 undefined

예제

car = undefined;    // 값은 undefined, 타입도 undefined입니다.

직접 테스트해 보세요

비어 있는 값

비어 있는 값과 undefined 무관합니다.

비어 있는 문자열은 유효한 값과 타입을 가집니다.

예제

let car = "";    // 값은 "", 타입은 "string"

직접 테스트해 보세요

Null

JavaScript에서 null 이며, 존재하지 않는 것입니다.

불운히 JavaScript에서는,null 의 데이터 타입은 객체입니다.

그것은 JavaScript의 버그로 생각할 수 있습니다.typeof null 는 객체입니다. 타입은 다음과 같아야 합니다: null

객체를 다음과 같이 설정하여: null 객체를 비우는 방법:

예제

let person = {firstName:"Bill", lastName:"Gates", age:19, eyeColor:"blue"};
person = null;    // 지금 값은 null이지만 타입은 여전히 객체입니다

직접 테스트해 보세요

객체를 다음과 같이 설정하여: undefined 객체를 비우는 방법:

예제

let person = {firstName:"Bill", lastName:"Gates", age:19, eyeColor:"blue"};
person = undefined;   // 지금 값과 타입 모두 undefined

직접 테스트해 보세요

undefined과 null의 차이

undefined 그리고 null 값이 같지만 타입이 다른 경우:

typeof undefined           // undefined
typeof null                // object
null === undefined         // false
null == undefined          // true

직접 테스트해 보세요