JavaScript 검 측 데이터 형식

1. typeof typeof 조작 부 호 는 하나의 변수 가 String, Number, Boolean 인지, 아니면 undefined 인지 확인 하 는 가장 좋 은 도구 이다.
인용 출처: 투 령 프로 그래 밍 총서
다음 예 를 보십시오.
var s = 'hello';
var num = 10;
var bool = true;
var und;

typeof s;    // "string"
typeof num;  // "number"
typeof bool; // "boolean"
typeof und;  // "undefined"

ok, 다 검출 됐어 요. 또는 null 돌아 갑 니 다.Object, 다음 과 같다.
var n = null;
var o = new Object();

typeof n; // "object"
typeof o; // "object"

봐 라, 조금도 구분 이 없다.
그래서
기본 데이터 형식 을 검사 할 때 type: of 가 좋 습 니 다.
인용 형식의 값 을 검사 할 때 type: of 의 역할 은 크 지 않 습 니 다.
2. instanceof
var o = new Object();
var arr = [];
var reg = /^abc$/

o instanceof Object   //true
arr instanceof Array  //true
reg instanceof RegExp //true

메모: instanceof 연산 자 를 사용 하여 기본 데이터 형식의 값 을 검사 할 때 false 되 돌아 갑 니 다. 비록 아래 의 예 가 모순 되 어 보이 지만.
null instanceof Object // false
typeof null // "object"

3. Object.prototype.toString()
ECMA - 262 규범 에서 toString 방법 은 이렇게 정의 된다.
  • 매개 변수 가 정의 되 지 않 은 값 이 라면 되 돌려 줍 니 다 "[object Undefined]".
  • 인자 가 null 이면 되 돌려 줍 니 다 "[object Null]".
  • ToObject 함수 전달 매개 변 수 를 적용 하면 대상 을 되 돌려 줍 니 다.
  • 인자 가 클래스 라면 대상 을 포함 하 는 클래스 를 되 돌려 줍 니 다. (Let class be the value of the [Class] internal property of O.)
  • "[대상", 클래스, "]" 와 연 결 된 문자열 을 되 돌려 줍 니 다.
  • 인용 형식 이 더 정확 한 형식 검 사 를 되 돌려 줍 니 다.
    var o = new Object();
    var arr = [];
    var reg = /^abc$/
    
    Object.prototype.toString.call(o) // "[object Object]"
    Object.prototype.toString.call(arr) // "[object Array]"
    Object.prototype.toString.call(reg) // "[object RegExp]"
    

    함수 패 키 징 처리:
    var type = function (o) {
        var s = Object.prototype.toString.call(o);
        return s.match(/\[object (.*?)\]/)[1];
    }
    type(o) // "Object"
    type(reg) // "RegExp"
    type(arr) // "Array"

    좋은 웹페이지 즐겨찾기