>  기사  >  웹 프론트엔드  >  js 데이터 유형 판단 및 배열 판단에 대한 간략한 논의

js 데이터 유형 판단 및 배열 판단에 대한 간략한 논의

高洛峰
高洛峰원래의
2017-01-14 10:02:411107검색

서두에 쓴 글:

어제 인터뷰를 하다가 제가 너무 긴장해서 너무 간단한 질문에 답을 못했다는 걸 알게 됐어요. 나 자신이 울다. 나중에 생각해보니, 깊은 인상을 남길 수 있도록 꼼꼼히 녹음해야겠다는 생각이 들었습니다. 혁명은 아직 성공하지 못했으며 우리는 여전히 강해지려면 열심히 노력해야 합니다!

1. 6가지 주요 js 데이터 유형

숫자: 숫자, 정수, 부동 소수점 숫자 등,

문자열: 작은따옴표 또는 큰따옴표,

Boolean: true와 false를 반환하며, 이 두 값은 반드시 1과 0에 해당할 필요는 없습니다.

object: 객체, 객체 유형의 이름 뒤에 new 연산자를 실행하여 생성할 수 있습니다. 생성됩니다.

null: 값 데이터 유형은 하나만 있습니다. 논리적으로 null 값은 null 개체 포인터를 나타냅니다.

정의되지 않음: var를 사용하여 변수를 선언했지만 초기화하지 않은 경우 변수의 값은 정의되지 않습니다.

2. 데이터 유형 판단 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, 개체 및 array return 모두 객체형입니다! ! !

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

3. 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 정의의 constructor

정의: constructor 속성은 생성의 키를 반환합니다. this 객체의 배열 함수 참조

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 중국어 웹사이트를 지원해 주기를 바랍니다.

js 데이터 유형 판단과 배열 판단에 대한 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

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