JavaScript에서 데이터 유형을 판단하는 4가지 방법
8408 단어 JavaScript판단데이터 유형
1. typeof를 사용하여 데이터 유형을 판단한다
console.log(' Number ->', typeof 1); // number
console.log(' Boolean ->', typeof true); // boolean
console.log(' String ->', typeof ''); // string
console.log(' null ->', typeof null); // object
console.log(' undefined ->', typeof undefined); // undefined
console.log(' NaN ->', typeof NaN); // number
console.log(' function ->', typeof function () { }); // function
console.log(' Object ->', typeof {}); // object
console.log(' Array ->', typeof []); // object
console.log(' Date ->', typeof new Date()); // object
console.log(' Error ->', typeof new Error()); // object
console.log(' RegExp ->', typeof new RegExp()); // object
console.log(' Symbol ->', typeof Symbol()); // symbol
console.log(' Map ->', typeof new Map()); // object
console.log(' Set ->', typeof new Set()); // object
콘솔 출력은 다음과 같습니다.테스트 Number -> number
테스트 Boolean -> boolean
테스트 String -> string
테스트 null -> object
테스트 undefined -> undefined
테스트 NaN -> number
테스트 기능 -> 기능
테스트 오브젝트 -> 오브젝트
테스트 Array -> object
테스트 날짜-> object
테스트 Error -> object
테스트 RegExp -> object
테스트 Symbol -> symbol
테스트 맵 -> object
테스트 Set -> object
요약:
1. typeof는 판단만 가능합니다.
3. Object와 Array는 모두 Object로 되돌아간다
2. instanceof를 사용하여 데이터 유형을 판단한다
console.log(' Number ->', 1 instanceof Number); // false
console.log(' Boolean ->', true instanceof Boolean); // false
console.log(' String ->', '' instanceof String); // false
// console.log(' null ->', null instanceof null); // TypeError: Cannot read property 'constructor' of null
// console.log(' undefined ->', undefined instanceof undefined); // TypeError: Cannot read property 'constructor' of undefined
console.log(' NaN ->', NaN instanceof Number); // false
console.log(' function ->', function () { } instanceof Function); // true
console.log(' Object ->', {} instanceof Object); // true
console.log(' Array ->', [] instanceof Array); // true
console.log(' Date ->', new Date() instanceof Date); // true
console.log(' Error ->', new Error() instanceof Error); // true
console.log(' RegExp ->', new RegExp() instanceof RegExp); // true
console.log(' Symbol ->', Symbol() instanceof Symbol); // false
console.log(' Map ->', new Map() instanceof Map); // true
console.log(' Set ->', new Set() instanceof Set); // true
console.log(' new Number ->', new Number(1) instanceof Number); // true
console.log(' new Boolean ->', new Boolean(true) instanceof Boolean); // true
console.log(' new String ->', new String('') instanceof String); // true
콘솔 출력은 다음과 같습니다.테스트 Number -> false
테스트 Boolean -> false
테스트 String -> false
테스트 NaN -> false
테스트 기능 ->true
테스트 Object -> true
테스트 Array -> true
테스트 날짜 -> true
테스트 오류 -> true
테스트 RegExp -> true
테스트 Symbol -> false
테스트 맵->true
테스트 세트 -> true
new Number 테스트 -> true
테스트 new Boolean -> true
new String 테스트 -> true
요약:
1、null,undefined 판단불가
2. 기본 데이터 유형 Number, String, Boolean은 판단할 수 없음
3. instanceof는 대상이 특정한 데이터 형식인지 아닌지를 판단하는 실례로
상례에서 1,true,'실례가 아니기 때문에false로 판단
3. constructor를 사용하여 데이터 유형을 판단한다
console.log(' Number ->', (1).constructor === Number); // true
console.log(' Boolean ->', true.constructor === Boolean); // true
console.log(' String ->', ''.constructor === String); // true
// console.log(' null ->', null.constructor === null); // TypeError: Cannot read property 'constructor' of null
// console.log(' undefined ->', undefined.constructor); // TypeError: Cannot read property 'constructor' of undefined
console.log(' NaN ->', NaN.constructor === Number); // true :NaN infinity Number
console.log(' function ->', function () { }.constructor === Function); // true
console.log(' Object ->', {}.constructor === Object); // true
console.log(' Array ->', [].constructor === Array); // true
console.log(' Date ->', new Date().constructor === Date); // true
console.log(' Error ->', new Error().constructor === Error); // true
console.log(' RegExp ->', new RegExp().constructor === RegExp); // true
console.log(' Symbol ->', Symbol().constructor === Symbol); // true
console.log(' Map ->', new Map().constructor === Map); // true
console.log(' Set ->', new Set().constructor === Set); // true
콘솔 출력은 다음과 같습니다.테스트 Number -> true
테스트 Boolean -> true
테스트 String -> true
테스트 NaN -> true
테스트 기능 ->true
테스트 Object -> true
테스트 Array -> true
테스트 날짜 -> true
테스트 오류 -> true
테스트 RegExp -> true
테스트 Symbol -> true
테스트 맵->true
테스트 세트 -> true
요약:
null, undefined, 다른 건 다 괜찮아요.
넷째, Object를 사용합니다.prototype.toString 데이터 유형 판단
console.log(' Number ->', Object.prototype.toString.call(1)); // [object Number]
console.log(' Boolean ->', Object.prototype.toString.call(true)); // [object Boolean]
console.log(' String ->', Object.prototype.toString.call('')); // [object String]
console.log(' null ->', Object.prototype.toString.call(null)); // [object Null]
console.log(' undefined ->', Object.prototype.toString.call(undefined)); // [object Undefined]
console.log(' NaN ->', Object.prototype.toString.call(NaN)); // [object Number]
console.log(' function ->', Object.prototype.toString.call(function () { })); // [object Function]
console.log(' Object ->', Object.prototype.toString.call({})); // [object Object]
console.log(' Array ->', Object.prototype.toString.call([])); // [object Array]
console.log(' Date ->', Object.prototype.toString.call(new Date())); // [object Date]
console.log(' Error ->', Object.prototype.toString.call(new Error())); // [object Error]
console.log(' RegExp ->', Object.prototype.toString.call(new RegExp())); // [object RegExp]
console.log(' Symbol ->', Object.prototype.toString.call(Symbol())); // [object Symbol]
console.log(' Map ->', Object.prototype.toString.call(new Map())); // [object Map]
console.log(' Set ->', Object.prototype.toString.call(new Set())); // [object Set]
콘솔 출력은 다음과 같습니다.Number 테스트 -> [object Number]
테스트 Boolean -> [object Boolean]
테스트 String -> [object String]
테스트 null -> [object Null]
테스트 undefined -> [object Undefined]
테스트 NaN -> [object Number]
테스트 기능 -> [object Function]
테스트 Object -> [object Object]
Array 테스트 -> [object Array]
테스트 날짜 -> [object 날짜]
테스트 Error -> [object Error]
테스트 RegExp -> [object RegExp]
테스트 Symbol -> [object Symbol]
테스트 맵 -> [object Map]
테스트 Set -> [object Set]
요약:
현재 가장 완벽한 데이터 유형 판단 방법
결어: 이상은 필자의 테스트와 총결이다.만약 잘못되었거나 불완전한 곳이 있다면, 여러분의 낡은 철의 시정을 환영합니다.
이상은 자바스크립트가 데이터 유형을 판단하는 4가지 방법의 상세한 내용입니다. 자바스크립트가 데이터 유형을 판단하는 것에 대한 더 많은 자료는 저희 다른 관련 글을 주목해 주십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.