> 웹 프론트엔드 > JS 튜토리얼 > 데이터 유형의 JavaScript 구현 및 배열 판단 방법에 대한 자세한 설명

데이터 유형의 JavaScript 구현 및 배열 판단 방법에 대한 자세한 설명

韦小宝
풀어 주다: 2018-03-14 18:39:03
원래의
1296명이 탐색했습니다.

이 글에서는 JavaScript에서 데이터 유형을 구현하는 방법과 배열 판단에 대해 설명합니다. JavaScript의 데이터 유형 구현 및 배열 판단에 대해 모르거나 JavaScript의 데이터 유형 구현 및 판단에 관심이 있는 경우입니다. 배열, 그럼 함께 갑시다. 이 기사를 살펴보세요. 쓸데없는 말은 그만하고 요점으로 들어가겠습니다.

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

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

number:数字,整数、浮点数等等,
string:单引号或者双引号来说明,
Boolean:返回true和false,这两个值不一定对应1和0
object:对象,可以执行new操作符后跟要创建的对象类型的名称来创建。
null:只有一个值得数据类型,逻辑上讲,null值表示一个空对象指针。
undefined:未定义,使用var声明变量但未对其初始化时,变量的值就是undefined。
로그인 후 복사

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

//判断变量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类型
로그인 후 복사

문자열, 숫자, 부울, 정의되지 않음, null, 객체 및 배열의 ​​네 가지 유형을 제외하고 모두 객체 유형을 반환합니다! ! !

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

3. js에서 배열 유형을 결정하는 방법

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

a instanceof b?alert("true"):alert("false")  
//注意b值是你想要判断的那种数据类型,是不是一个字符串,比如Array
로그인 후 복사
例子:var arr = [1,2,3,1]; 
alert(arr instanceof Array); // true
로그인 후 복사

2) constructor
W3C 정의의 정의: constructor 속성은 이 객체를 생성한 배열 함수에 대한 참조를 반환합니다.

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는 ie 브라우저

JS가 배열을 자세히 결정합니다

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿