JS 에서 데이터 형식 을 판단 하 는 방법 - 수심
10204 단어 웹 전단
1. type: of - 대응 하 는 데이터 형식 을 되 돌려 줍 니 다.
:
:typeof( )
:
var str = " ";
var num = 666;
var obj = new Object();
var arr = [1,2,3];
var fn = function(){
console.log(" ")
}
typeof(str) //string
typeof(num) //number
typeof(obj) //object
typeof(arr) //object
typeof(fn) //function
질문: 인용 형식 (복잡 한 데이터 형식: 대상 과 배열) 이 라면 모두 Object 로 되 돌아 가 구체 적 으로 구분 할 수 없습니다.
2. instanceof - 대상 형식 에 만 적용 되 며 간단 한 형식의 데이터 형식 에 적용 되 지 않 으 며 boolean 값 을 되 돌려 줍 니 다.
:1: ;
2:
: instanceof || instaneof
1:
대상 유형 이 라면 구분 가능arr instanceof Array //true
new Date() instanceof Date //true
2:
구조 함수 instanceof
의 인 스 턴 스 여 부 를 검증 하기 위해 F
사용 fn
var F = new fn(); //
F instanceof fn ; //true, F fn
:
서로 다른 구조 함수 에 대해 같은 인 스 턴 스 가 true 로 돌 아 왔 습 니 다. 다음 F 는 Object 에 대해 서도 true 로 돌 아 왔 습 니 다.F instanceof Object //true
instanceof :
왼쪽 은 인 스 턴 스 대상 이 고 오른쪽 은 구조 함수 입 니 다. 인 스 턴 스 of 는 구조 함수 의 원형 대상 prototype 이 왼쪽 대상 의 원형 체인 에 있 는 지 확인 하고 있 으 면 true 로 돌아 갑 니 다. 그렇지 않 으 면 false 로 돌아 갑 니 다. instanecof
내부 실행 함수:instanceof (A,B) = {
var L = A.__proto__;
var R = B.prototype;
if(L === R) {
//A __proto__ B
return true;
}
return false;
}
그러면 왼쪽 대상 의 원형 체인 과 오른쪽 함수 의 원형 대상 에서 무슨 일이 일 어 났 는 지 살 펴 보 겠 습 니 다.
F.__proto__===fn.prototype //true F fn
F.__proto__.proto__||fn.prototype.__proto__===Object.prototype //true fn Object
Object.prototype.__proto__ //null
설명 은 F - fn - Object 가 모두 하나의 원형 체인 에 있 는데 그 중에서 fn 과 Object 의 prototype 속성 은 모두 F 가 있 는 이 원형 체인 에 존재 하기 때문에 F 침 은 두 함수 에 대해 모두 true 로 돌 아 왔 다.
3. constructor - 자체 가 prototype 대상 의 속성 입 니 다. 기본적으로 prototype 속성 이 있 는 구조 함 수 를 가리 키 며 데이터 형식 을 판단 합 니 다.boolean 값 되 돌리 기
:1. , 、 、 ,
: .constructor ===
:
str.constructor===String //true
num.constructor===Number //true
obj.constructor===Object //true
arr.constructor===Array //true
new Date().constructor===Date //true
4. jQuery. type () - 만능 이 라 고 합 니 다.
: 。PS.
:jQuery.type( )
:
날짜, 정규, undefined, null 등 을 포함 하여 모두 판단 할 수 있다.jQuery.type(str) //string
jQuery.type(num) //number
jQuery.type(arr) //array
jQuery.type(obj) //object
jQuery.type(fn) //funtion
:
type of () - 간단 한 데이터 형식 을 판단 할 수 없습니다. 국화 가루 복잡 한 데이터 형식, 예 를 들 어 Object 와 Array 가 되 돌아 오 는 것 은 모두 Object instanceof 입 니 다. 대상 에 만 데이터 형식 을 구분 할 수 있 습 니 다.또한 특정한 인 스 턴 스 가 특정한 구조 함수 의 인 스 턴 스 인지 판단 할 수 있 지만 여러 구조 함수 에 대응 하 는 상황 이 발생 할 수 있 습 니 다. constructor - 모든 데이터 형식 을 판단 합 니 다.물론 그의 본질은 prototyep 속성 이 있 는 함 수 를 계산 하 는 jQuery type () 입 니 다. 모든 데이터 형식 을 판단 합 니 다.이상 은 저의 간단 한 이해 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
js div 드래그 호 환 i / fireforx js 마우스 위치 깊이 분석이벤트 속성 은 이벤트 가 실 행 될 때 브 라 우 저 페이지 (클 라 이언 트) 에 대한 수직 좌 표를 되 돌려 줍 니 다. 이 두 속성 은 이벤트 가 실 행 될 때 마우스 포인터 가 브 라 우 저 페이지 (클 라...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.