>  기사  >  웹 프론트엔드  >  js 데이터 유형 및 배열 메소드 인스턴스를 판단하는 방법에 대한 자세한 설명

js 데이터 유형 및 배열 메소드 인스턴스를 판단하는 방법에 대한 자세한 설명

伊谢尔伦
伊谢尔伦원래의
2017-07-18 11:37:221594검색

데이터 유형 판단 typeof

typeof는 대부분의 데이터 유형에 대한 판단을 해결할 수 있으며, 반환 값은 피연산자의 유형을 설명하는 문자열입니다.


//判断变量num是不是一个数字类型
if(typeof num=='number') {
  return true;
}

반환 결과:


var a="hling"; console.log(a); //string
var a=1; console.log(a); //number
var a=false; console.log(a); //boolean
var a; console.log(typeof a); //undfined
var a = null; console.log(typeof a); //object
var a = document; console.log(typeof a); //object
var a = []; console.log(a); //object
var a = function(){}; console.log(typeof a) 
//function除了可以判断数据类型还可以判断function类型

문자열, 숫자, 부울, 정의되지 않음의 4가지 유형 외에 null, 객체, 배열 모두 객체 유형을 반환합니다! ! !

함수 유형의 경우 typeof(Date), typeof(eval) 등과 같은 함수가 반환됩니다.

js 배열 유형 결정 방법

1) instanceof

instanceof는 변수가 객체의 인스턴스인지 여부를 결정하는 데 사용되는 삼항 연산자입니다. 이 연산자는 JavaScript의 객체지향과 관련이 있습니다. 이를 이해하려면 먼저 JavaScript의 객체지향을 이해해야 합니다. 이 연산자는 객체의 프로토타입 체인이 생성자의 프로토타입 객체를 가리키는지 여부를 감지하기 때문입니다.


a instanceof b?alert("true"):alert("false") 
//注意b值是你想要判断的那种数据类型,是不是一个字符串,比如Array

예:


var arr = [1,2,3,1]; 
alert(arr instanceof Array); // true

2) W3C 정의의 생성자

: 생성자 속성은 이 객체를 생성한 배열 함수에 대한 참조를 반환합니다.


var arr = []; 
arr instanceof Array; // true 
arr.constructor == Array; //true
각각 판단 첫 번째 유형의 방법은 다음과 같습니다.


console.log("string".constructor == String);
console.log((123).constructor == Number);
console.log(false.constructor == Boolean);
console.log([].constructor == Array);
console.log({}.constructor == Object);

일반적인 방법:


function isArray(object){
  return object && typeof object==='object' &&
      Array == object.constructor;
}

3) 특징 판단

object.isArray()를 사용하여 판단합니다. 목적은 값이 값인지 여부를 정확하게 감지하는 것입니다. 정렬. IE9+, Firefox 4+, Safari 5+, Opera 10.5+ 및 Chrome은 모두 이 방법을 구현합니다. 단, IE8 이전 버전은 지원되지 않습니다.


function isArray(object){
  return object && typeof object==='object' &&  
      typeof object.length==='number' && 
      typeof object.splice==='function' &&  
       //判断length属性是否是可枚举的 对于数组 将得到false 
      !(object.propertyIsEnumerable('length'));
}

4) Object.prototype.toString.call


Object.prototype.toString.call(value) == '[object Array]'

위 내용은 js 데이터 유형 및 배열 메소드 인스턴스를 판단하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.