JavaScript에서 typeof 연산자가 반환할 수 있는 데이터 유형은 "정의되지 않음", "객체", "부울", "숫자", "문자열", "기호", "함수" 등입니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.
변수의 데이터 유형을 반환하려면 typeof
연산자를 사용하세요.
각 데이터 유형에 해당하는 typeof의 값을 살펴보겠습니다.
Data type | Result |
---|---|
Undefine | "undefine" |
Null | "객체" |
부울 | "boolean" |
숫자 값 | "number" |
string | "string" |
기호(ECMAScript 6의 새로운 기능) | "기호" |
호스트 객체(브라우저 등 JS 환경에서 제공) | 구현에 따라 다름 |
Function 객체 | "function" |
any other object | "object" |
보세요 구체적인 예:
// Numbers typeof 37 === 'number'; typeof 3.14 === 'number'; typeof Math.LN2 === 'number'; typeof Infinity === 'number'; typeof NaN === 'number'; // 尽管NaN是"Not-A-Number"的缩写,意思是"不是一个数字" typeof Number(1) === 'number'; // 不要这样使用! // Strings typeof "" === 'string'; typeof "bla" === 'string'; typeof (typeof 1) === 'string'; // typeof返回的肯定是一个字符串 typeof String("abc") === 'string'; // 不要这样使用! // Booleans typeof true === 'boolean'; typeof false === 'boolean'; typeof Boolean(true) === 'boolean'; // 不要这样使用! // Symbols typeof Symbol() === 'symbol'; typeof Symbol('foo') === 'symbol'; typeof Symbol.iterator === 'symbol'; // Undefined typeof undefined === 'undefined'; typeof blabla === 'undefined'; // 一个未定义的变量,或者一个定义了却未赋初值的变量 // Objects typeof {a:1} === 'object'; // 使用Array.isArray或者Object.prototype.toString.call方法可以从基本的对象中区分出数组类型 typeof [1, 2, 4] === 'object'; typeof new Date() === 'object'; // 下面的容易令人迷惑,不要这样使用! typeof new Boolean(true) === 'object'; typeof new Number(1) ==== 'object'; typeof new String("abc") === 'object'; // 函数 typeof function(){} === 'function'; typeof Math.sin === 'function';
문제를 발견합니다. 즉, typeof가 데이터 유형을 결정하는 데 정확하지 않습니다. 예를 들어 배열, 정규식, 날짜, 객체의 반환값 유형은 모두 객체이므로 일부 오류가 발생합니다.
따라서 유형을 결정하는 유형을 기반으로 Object.prototype.toString 메서드를 사용하여 데이터 유형을 추가로 결정해야 합니다.
동일한 데이터 유형의 경우 toString 메소드와 typeof 메소드의 반환 값의 차이점을 살펴보겠습니다.
string | new String("foo") | |
---|---|---|
new Number(1.2) | Number | |
사실이야 | Boolean | |
new Boolean (true) | Boolean | |
new Date() | Date | |
new Error() | 오류 | |
새 배열(1, 2, 3) | Array | |
/abc/g | RegExp | |
new RegExp("야옹") | RegExp | |
toString 메소드를 사용하면 Array, Error, RegExp, Date 및 기타 유형을 올바르게 구별할 수 있음을 알 수 있습니다. | ||
【관련 권장 사항: | javascript 학습 튜토리얼】 |
위 내용은 JavaScript의 typeof는 어떤 데이터 유형을 반환할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!