배열을 판단하는 방법은 무엇인가요? 어떤 친구들은 알아야 하지만, 어떤 친구들은 js가 배열을 어떻게 판단하는지 알 수 없습니다. 아래 편집자는 이 문제에 대한 몇 가지 정보를 수집하고 정리했습니다. 관심 있는 친구들은 JS에 대한 지식을 습득하여 배열을 판단할 수 있기를 바랍니다.
typeof 연산자
typeof는 이 유형의 문자열을 반환합니다
var a = '123' console.log(typeof(a)) //string var b = [] console.log(typeof(b)) //object var c = {} console.log(typeof(c)) //object var d = null console.log(typeof(d)) //object
위에서 볼 수 있듯이 배열 개체는 null입니다. 모든 개체를 반환하기 위해 typeof를 사용하면 배열인지 여부를 식별할 수 없습니다.
프로토타입 생성자 체인 메소드
인스턴스화에는 생성자 속성이 객체 배열을 생성하는 메소드를 가리킵니다
var a = [] console.log(a.__proto__.constructor) //ƒ Array() { [native code] } var b = {} console.log(b.__proto__.constructor) //ƒ Object() { [native code] }
위에서 본 것처럼 배열은 Array 함수에 의해 인스턴스화되고 객체는 Object 함수에 의해 인스턴스화됩니다
이 메소드는 다음과 같습니다. 좋습니다. 하지만 생성자 속성을 덮어쓸 수 있습니다.
var a = [] a.__proto__.constructor = Object console.log(a.__proto__.constructor) //ƒ Object() { [native code] }
객체화 여부를 확인하기 위해 배열로 변환된 것을 볼 수 있으므로 이 방법은 최선이 아닙니다
instanceof
이 방법은 여부를 확인하는 것입니다. 특정 생성자의 프로토타입 속성이 가리키는 객체가 감지할 다른 객체에 있습니다. 객체의 프로토타입 체인에서
var a = [] console.log(a instanceof Array) //a对象的原型链上能找到Array true console.log(a instanceof Object) //true 原型链上也能找到对象
위의 내용은 배열인지 객체인지 판별하기가 특히 쉽지 않습니다
범용 방법 toString
toString() 메소드는 이 객체를 반영하는 문자열을 반환합니다
var a= '123' console.log(a.toString()) //123 var b = [1,2,3] console.log(b.toSting()) //1,2,3 var c = {} console.log(c.toString)) //[object Object]
객체만 반환되는 것을 볼 수 있습니다. 객체 유형
Returns [객체 유형] 유형은 객체의 유형을 나타냅니다
객체를 확인하려면 Object의 toString 메서드를 가져와 사용합니다
var a =[] Object.prototype.toString.call(a) //[object Array]
이 개체의 toString 메서드는 배열인지 여부를 확인할 수 있습니다
하지만 여기에는 상황이 있습니다. 개체 프로토타입의 toString()도 변경할 수 있습니다
Array.isArray(XX)
개인적으로 저는 여전히 더 안정적인 일반적인 방법인 toString()을 사용합니다
관련 권장 사항:
JavaScript에서 in_array 함수를 사용하여 배열 사용량을 확인하는 방법에 대한 자세한 설명
배열이 비어 있는지 확인하는 PHP의 일반적인 방법(5가지 방법)
위 내용은 JS 판단 배열에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!