JavaScript typeof 연산자
자바스크립트에는 값을 포함할 수 있는 5가지 데이터 타입이 있습니다.
string
number
boolean
object
function
객체에는 6가지 타입이 있습니다.
Object
Date
Array
String
Number
Boolean
값을 포함할 수 없는 두 가지 데이터 타입이 있습니다.
null
undefined
typeof 연산자
typeof
연산자를 사용하여 변수의 데이터 타입을 찾을 수 있습니다.
예제 1
typeof "John" // Returns "string"
typeof 3.14 // Returns "number"
typeof NaN // Returns "number"
typeof false // Returns "boolean"
typeof [1,2,3,4] // Returns "object"
typeof {name:'John', age:34} // Returns "object"
typeof new Date() // Returns "object"
typeof function () {} // Returns "function"
typeof myCar // Returns "undefined" *
typeof null // Returns "object"
다음 사항을 준수하십시오.
- NaN의 데이터 타입은 숫자입니다.
- 배열의 데이터 타입은 객체입니다.
- 날짜의 데이터 타입은 객체입니다.
- null의 데이터 타입은 객체입니다.
- 정의되지 않은 변수의 데이터 타입은 undefined 입니다.
- 값이 할당되지 않은 변수의 데이터 타입은 undefined 입니다.
typeof
를 사용하여 JavaScript 객체가 배열(또는 날짜)인지 확인할 수 없습니다.
원시 데이터
원시 데이터 값은 추가 속성 및 메서드가 없는 단일 단순 데이터 값입니다.
typeof
연산자는 다음 기본 형식 중 하나를 반환할 수 있습니다.
string
number
boolean
undefined
예제 2
typeof "John" // Returns "string"
typeof 3.14 // Returns "number"
typeof true // Returns "boolean"
typeof false // Returns "boolean"
typeof x // Returns "undefined" (x가 값이 없을 때)
복합 데이터
typeof
연산자는 다음 두 가지 복합 타입 중 하나를 반환할 수 있습니다.
function
object
typeof
연산자는 객체, 배열, null에 대해 “object”를 반환합니다.
typeof
연산자는 함수에 대해 “object”를 반환하지 않습니다.
예제 3
typeof {name:'John', age:34} // Returns "object"
typeof [1,2,3,4] // Returns "object"
typeof null // Returns "object"
typeof function myFunc(){} // Returns "function"
typeof
연산자는 배열에 대해 “object”를 반환합니다. 자바스크립트 배열은 객체이기 때문입니다.
typeof의 데이터 타입
typeof
연산자는 변수가 아닙니다. 연산자입니다. 연산자( + - * /
)에는 데이터 형식이 없습니다.
그러나 typeof
연산자는 항상 문자열을 반환합니다. (피연산자 유형 포함)
constructor 속성
constructor
속성은 모든 JavaScript 변수에 대한 생성자 함수를 반환합니다.
예제 4
"John".constructor // Returns function String()
(3.14).constructor // Returns function Number()
false.constructor // Returns function Boolean()
[1,2,3,4].constructor // Returns function Array()
{name:'John',age:34}.constructor // Returns function Object()
new Date().constructor // Returns function Date()
function () {}.constructor // Returns function Function()
constructor
속성을 확인하여 객체가 배열인지 확인할 수 있습니다(“Array” 단어 포함).
예제 5
function isArray(myArray) {
return myArray.constructor.toString().indexOf("Array") > -1;
}
또는 객체가 배열 함수인지 여부를 확인할 수 있습니다.
예제 6
function isArray(myArray) {
return myArray.constructor === Array;
}
constructor
속성을 확인하여 객체가 Date인지 확인할 수 있습니다(“Date” 단어 포함).
예제 7
function isDate(myDate) {
return myDate.constructor.toString().indexOf("Date") > -1;
}
또는 객체가 Date 함수인지 여부를 확인할 수 있습니다.
예제 8
function isDate(myDate) {
return myDate.constructor === Date;
}
Undefined
자바스크립트에서 값이 없는 변수는 undefined
입니다. 유형도 undefined
입니다.
예제 9
let car; // 값 : undefined, 데이터 타입 : undefined
값을 undefined
로 설정하여 모든 변수를 비울 수 있습니다. 유형도 undefined
입니다.
예제 10
car = undefined; // 값 : undefined, 데이터 타입 : undefined
빈 값
빈 값은 undefined
와 관련이 없습니다.
빈 문자열에는 실제 값과 유형이 모두 있습니다.
예제 11
let car = ""; // 값 : "", 데이터 타입 : "string"
Null
자바스크립트에서 null
은 “nothing”입니다. 존재하지 않는 어떤 것입니다.
JavaScript에서 null
의 데이터 타입은 객체입니다.
객체를 null
로 설정하여 비울 수 있습니다.
예제 12
let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
person = null; // 값 : null, 데이터 타입 : "object"
객체를 undefined
으로 설정하여 비울 수도 있습니다.
예제 13
let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
person = undefined; // 값 : undefined, 데이터 타입 : undefined
undefined와 null의 차이
undefined
와 null
은 값은 같지만 유형이 다릅니다.
예제 14
typeof undefined // undefined
typeof null // object
null === undefined // false
null == undefined // true