javascript의 typeof 및 유형 판단에 대한 자세한 설명

小云云
풀어 주다: 2018-01-20 13:54:35
원래의
1431명이 탐색했습니다.

이 글은 주로 JavaScript의 typeof와 type 판단을 기반으로 한 글을 제공합니다(자세한 설명). 에디터가 꽤 좋다고 생각해서 지금 공유해서 참고용으로 올려보겠습니다. 편집자를 따라 살펴보겠습니다. 모두에게 도움이 되기를 바랍니다.

typeof

ECMAScript에는 정의되지 않음, Null, 부울, 숫자 및 문자열의 5가지 기본 유형이 있습니다. typeof 연산자를 사용하여 변수의 유형을 찾을 수 있다는 것은 모두 알고 있지만 참조 유형 변수의 경우 객체만 반환합니다. 즉, typeof는 기본 유형 값 변수만 올바르게 식별할 수 있다는 의미입니다.

var a = "abc";
console.log(typeof a); // "string"
var b = 123;
console.log(typeof b); // "number"
var c = true;
console.log(typeof c); // "boolean"
var d = null;
console.log(typeof d); // "object"
var f = undefined;
console.log(typeof f); // "undefined"
var g;
console.log(typeof g); // "undefined"

console.log(typeof x); // "undefined"
로그인 후 복사

typeof 연산자가 null 값에 대해 "객체"를 반환하는 이유가 궁금할 수 있습니다. 이는 실제로 당시 ECMAScript에 채택된 JavaScript의 원래 구현에 있는 버그였습니다. 이제 null은 객체의 자리 표시자로 간주되어 모순을 설명하지만 기술적으로는 여전히 원시 값입니다.

마지막은 이상합니다. 존재하지 않는 변수 x의 유형은 실제로 "정의되지 않음" 대신 "객체"를 반환합니다.

다음 코드가 나옵니다.

var a = function() { };
console.log(typeof a); // "function"
var b = [1,2,3]; 
console.log(typeof b); // "object"
var c = { };
console.log(typeof c); // "object"
로그인 후 복사

배열과 객체 모두에 대해 "객체"를 반환하므로 일상적인 개발에서 일반적으로 필요한 것은 변수가 배열인지 객체인지 확인하는 방법입니다.

타입 판단

타입 판단은 일반적으로 배열인지 빈 객체인지 판단하는 것입니다. 이 요구 사항에 대해 제가 매일 사용했거나 본 판단 방법입니다

배열인지 판단하세요

배열이 있습니다: var a = [1,2,3,4,5];

방법 1:

toString .call(a); // "[객체 배열]" 메서드 2:

a instanceof Array; //true 메서드 3:

a.constructor == Array; 더 일반적으로는 Object.prototype.toString.call(a)의 약어입니다.

instanceof와 생성자로 판단되는 변수는 현재 페이지에서 선언되어야 합니다. 예를 들어 페이지(상위 페이지)에는 프레임이 있고, 페이지(하위 페이지)는 프레임에서 참조되며, 하위 페이지에서는 a가 선언됩니다. , 상위 페이지의 변수에 할당됩니다. 변수를 판단할 때 Array == object.constructor는 false를 반환합니다.

var a = [1,2,3,4,5];
console.log(toString.call(a)); // "[object Array]"      
console.log(a instanceof Array); //true
console.log(a.constructor == Array); //true
로그인 후 복사

빈 객체인지 판단합니다

변수가 있습니다: var obj = {};

방법 1:

JSON.stringify(obj); // "{}"는 빈 중괄호인지 확인하기 위해 JSON 개체로 변환됩니다.

방법 2:

if(obj.id){ // 속성 id가 존재하는 경우.... }이 방법은 비교적 간단하며 대부분의 사람들이 객체에 특정 속성이 있다는 것을 전제로 생각할 수 있습니다.

방법 3:

function isEmptyObject(e) { 
var t; for (t in e) return !1; return !0 } //trueisEmptyObject(obj);
//falseisEmptyObject({ "a":1, "b":2});
로그인 후 복사

이 방법은 jQuery의 isEmptyObject() 메서드를 구현한 것입니다.

관련 권장 사항:

JavaScript의 typeof 사용 소개

JavaScript의 typeof 및 instanceof 사용 비교 예

js의 typeof 사용 요약

위 내용은 javascript의 typeof 및 유형 판단에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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