JavaScript 깊이 있 는 형식 검출

먼저 우 리 는 예 를 하나 보 자.
var a="string";
alert(a.length);
a.t=3;
alert(a.t);

답 이 무엇 인지 생각해 보 세 요. 첫 번 째 는 6 입 니 다. 그러면 두 번 째 는 요?당연히 3 이 라 고 생각 할 수도 있 지만 실제 결 과 는 undefined 입 니 다. 왜 일 까요?원본 형식 을 대상 으로 사용 하기 때 문 입 니 다. 예 를 들 어 length 속성 에 접근 하거나 속성 을 증가 하기 때 문 입 니 다.js 는 모두 스마트 하 게 포장 유형 대상 으로 전환 하여 new 의 원시 유형 대상 에 해당 한다.방문 이 끝 난 후에 이 포장 의 대상 을 소각 할 것 이다.그래서 이 답 은 '6 undefined' 일 것 이다.
typeof
함수 대상 function 과 기본 형식의 검 측 에 적합 한 문자열 을 되 돌려 줍 니 다. null 이 실 효 됩 니 다.
typeof 100;//“number”
typeof true;//“boolean”
typeof function;//“function”
typeof undefined;//“undefined”
typeof new Object();//"object"
typeof [1,2];//"object"
typeof NaN;//"number"
typeof null;//"object"

instanceof
  • 대상 유형 을 판단 하고 원형 체인 판단 을 바탕 으로 왼쪽 조작 수 는 대상 이 며 false 로 돌아 가지 않 으 면 오른쪽 조작 수 는 함수 대상 이나 함수 구조 기 이 고 그렇지 않 으 면 type error 의 이점 을 던 집 니 다.
  • 사용자 정의 대상 에 적합 하고 원생 대상 을 검사 하 는 데 도 사용 할 수 있다.
  • 주: 서로 다른 window 나 iframe 간 의 대상 유형 검 측 은 instanceof
  • 를 사용 할 수 없습니다.
    [1,2] instanceof Array ===true;
    new Object() instanceof Array ===false;
    
    function Person(){}
    function Student(){}
    Student.prototype = new Person();
    Student.prototype.constructor = Student;
    var bosn = new Student();
    bosn instanceof Student;//true
    var one = new Person();
    one instanceof Person;//true
    one instanceof Student;//false
    bosn instanceof Person;//true
    

    Object.prototype.toString
    내 장 된 대상 과 기본 형식 에 적합 하 며, null 과 undefined 가 실 효 됩 니 다.
    Object.prototype.toString.apply([]) === "[object Array]";
    Object.prototype.toString.apply(function(){}) === "[object Function]";
    Object.prototype.toString.apply(null) === "[object Null]";//IE6/7/8  “[object Object]”
    Object.prototype.toString.apply(undefined) === "[object Undefined]";
    

    좋은 웹페이지 즐겨찾기