자바 스 크 립 트 는 변 수 를 배열 로 판단 하 는 방법 입 니 다.
4579 단어 JavaScript전단
Array.isArray()
방법Array 유형 인지 아 닌 지 를 가장 간단하게 판단 하 는 방법.
var arr = [1, 2];
Array.isArray(arr); // true
2 사용
instanceof
판단instanceof
한 대상 이 구조 함수 인지 아 닌 지 를 판단 하 는 인 스 턴 스 이 고 변수 가 Array 인지 아 닌 지 를 판단 하 는 인 스 턴 스 입 니 다.예 를 들 어:var arr = [1, 2];
arr instanceof Array // ture
그러나 이러한 문제 가 존재 합 니 다.만약 에 하나의 유형 이 Array 류 를 계승 했다 면 이런 유형의 모든 실례 화 대상 은
instanceof
을 사용 하여 Array 인지 아 닌 지 를 판단 하 는 실례 가 모두 true 이기 때문에 사용instanceof
이 반드시 100%정확 한 것 은 아 닙 니 다.예 를 들 어:function myFun(){};
// Array
var proto = Object.create(Array.prototype);
myFun.prototype = proto;
proto.constructor = myFun;
var obj = new myFun();
obj instanceof Array; // true
위의 예 에서 볼 수 있 듯 이 obj 는 my Fun 류 의 실례 화 대상 이지 만
instanceof
을 사용 하여 Array 의 실례 로 판단 한다.3 사용
constructor
또는__proto__
판단원리:한 유형의 실례 화 대상
constructor
은 그 구조 함수 가 바로 이 클래스 를 가리 키 고__proto__
는 그 구조 함수 의 원형 대상 을 가리킨다.모든 배열 은 Array 류 의 실례 화 대상 이기 때문에
constructor
또는__proto__
으로 판단 할 수 있 습 니 다.예 를 들 어:var arr = [1, 2];
arr.constructor === Array; // true
arr.__proto__ === Array.prototype; // true
4 사용
Object.prototype.toString.call()
이 방법 은 Object 원형 대상 의 toString 방법 을 호출 하 는 것 입 니 다.이 방법 은 대상 의 내부 속성[[Class]]
을 되 돌려 줍 니 다.하나의 문자열[object type]
을 결과 로 합 니 다.그 중에서type
은 대상 의 유형 입 니 다.반면call
은toString
의this
방향 을 바 꾸 는 데 사용 된다.방법 은 해당 하 는 식별 자 를 표지 대상 의 유형 으로 되 돌려 줍 니 다.인 스 턴 스:var arr = [1, 2];
Object.prototype.toString.call(arr) === '[object Array]'; // true
//
var obj = {}
Object.prototype.toString.call(obj); // '[object Object]'
var bool = false;
Object.prototype.toString.call(bool); // '[object Boolean]'
var num = 1;
Object.prototype.toString.call(num); // '[object Number]'
var str = 'a';
Object.prototype.toString.call(str); // '[object String]'
var symbol = Symbol();
Object.prototype.toString.call(symbol); // '[object Symbol]'
Object.prototype.toString.call(null); // '[object Null]'
Object.prototype.toString.call(undefined); // '[object Undefined]'
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.