자바스크립트의 typeof 및 유형 판단

小云云
풀어 주다: 2018-01-02 10:19:38
원래의
1330명이 탐색했습니다.

이 글은 주로 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"
로그인 후 복사

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

형 판단

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

배열인지 판단하려면

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

방법 1:

toString.call(a); // "[객체 배열]" 방법 2:

a 인스턴스 배열; //참 방법 3:

a.constructor == Array; true 첫 번째 방법 이 방법은 더 일반적이며 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
로그인 후 복사

빈 개체인지 판단합니다.

변수가 있습니다. {};

방법 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 및 유형 판단 분석 예

JavaScript의 typeof 및 instanceof 비교 사용에 대한 자세한 예

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

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