웹 프론트엔드 JS 튜토리얼 JavaScript가 연산자와 속성을 사용하여 객체 유형을 결정하는 방법 요약

JavaScript가 연산자와 속성을 사용하여 객체 유형을 결정하는 방법 요약

Jul 26, 2017 am 11:52 AM
javascript js 연산자

JavaScript에서 객체 유형을 감지하는 연산자에는 typeof, 인스턴스of 및 객체의 생성자 속성이 포함됩니다.

1) typeof 연산자 typeof는 단항 연산자이며 반환 결과는 객체의 유형을 설명하는 문자열입니다. 피연산자. 예: "숫자", "문자열", "부울", "객체", "함수", "정의되지 않음"(변수가 존재하는지 확인하는 데 사용할 수 있음) 그러나 typeof에는 제한된 기능이 있으며 Date 및 RegExp 유형에 대해 "객체"를 반환합니다. 예:


typeof {}; // "object" 
typeof []; // "object" 
typeof new Date(); // "object"
로그인 후 복사

따라서 객체와 기본 유형을 구별할 때만 유용합니다. 한 객체 유형을 다른 객체 유형과 구별하려면 다른 방법을 사용해야 합니다. 예: 객체의 인스턴스 연산자 또는 생성자 속성.

2) 인스턴스 오브 연산자. instanceof 연산자에서는 왼쪽의 피연산자가 객체이고 오른쪽의 피연산자가 객체 클래스의 이름 또는 생성자여야 합니다. object가 클래스나 생성자의 인스턴스이면 objectof 연산자는 true를 반환합니다. object가 지정된 클래스나 함수의 인스턴스가 아니거나 object가 null인 경우 false를 반환합니다. 예:


[] instanceof Array; // true 
[] instanceof Object; // true 
[] instanceof RegExp; // false 
new Date instanceof Date; // true
로그인 후 복사

따라서, 객체가 배열 유형인지 확인하기 위해 objectof 연산자를 사용할 수 있습니다:


function isArray(arr){ 
  return arr instanceof Array; 
}
로그인 후 복사

3) 생성자 속성. JavaScript에서 각 개체에는 개체를 초기화하는 생성자를 참조하는 생성자 속성이 있으며, 이는 알 수 없는 개체의 유형을 결정하는 데 자주 사용됩니다. 예를 들어, 결정해야 할 값이 있으면 typeof 연산자를 사용하여 해당 값이 기본 값인지 객체인지 확인합니다. 객체인 경우 생성자 속성을 사용하여 해당 유형을 결정할 수 있습니다. 따라서 배열을 결정하는 함수는 다음과 같이 작성할 수도 있습니다.


function isArray(arr){ 
  return typeof arr == "object" && arr.constructor == Array; 
}
로그인 후 복사

많은 경우, 객체가 배열인지 여부를 감지하기 위해 인스턴스 오브 연산자나 객체의 생성자 속성을 사용할 수 있습니다. 예를 들어, 많은 JavaScript 프레임워크는 이 두 가지 방법을 사용하여 객체가 배열 유형인지 확인합니다. 그러나 크로스 프레임 페이지에서 배열을 감지하면 실패합니다. 그 이유는 서로 다른 프레임(iframe)에서 생성된 배열이 프로토타입 속성을 서로 공유하지 않기 때문입니다. 예:


<script>
window.onload=function(){
var iframe_arr=new window.frames[0].Array;
alert(iframe_arr instanceof Array); // false
alert(iframe_arr.constructor == Array); // false
}
</script>
로그인 후 복사

Ajaxian에서 프로토타입 체인 Object.prototype.toString() 전체에서 toString() 메서드를 호출하는 정확한 감지 방법을 보았습니다. 위의 크로스 프레임워크 문제를 해결할 수 있습니다. Object.prototype.toString(o)이 실행되면 다음 단계가 수행됩니다. 1) 객체 o의 클래스 속성을 얻습니다. 2) 연결 문자열: "[object "+result(1)+"]" 3) 결과(2) 반환 예:

Object.prototype.toString.call([]) // Return "[object Array]; "
Object.prototype.toString.call(/reg/ig); // Return "[object RegExp]"

이 방법으로 객체가 배열인지 확인하는 강력한 함수를 작성할 수 있습니다.


function isArray(arr){
  return Object.prototype.toString.call(arr) === "[object Array]";
}
로그인 후 복사

이 방법은 많은 외국 JavaScript 마스터에 의해 인정되었습니다. 이 방법은 곧 출시될 jQuery 1.3에서 배열을 감지하는 데 사용될 것입니다. 프로토타입.js의 관리자는 객체의 유형 이름을 얻는 데 사용되는 다음 함수를 작성했습니다.


/**
 * Returns internal [[Class]] property of an object
 *
 * Ecma-262, 15.2.4.2
 * Object.prototype.toString( )
 *
 * When the toString method is called, the following steps are taken: 
 * 1. Get the [[Class]] property of this object. 
 * 2. Compute a string value by concatenating the three strings "[object ", Result (1), and "]". 
 * 3. Return Result (2).
 *
 * __getClass(5); // => "Number"
 * __getClass({}); // => "Object"
 * __getClass(/foo/); // => "RegExp"
 * __getClass(&#39;&#39;); // => "String"
 * __getClass(true); // => "Boolean"
 * __getClass([]); // => "Array"
 * __getClass(undefined); // => "Window"
 * __getClass(Element); // => "Constructor"
 *
 */
function __getClass(object){
  return Object.prototype.toString.call(object).match(/^\[object\s(.*)\]$/)[1];
};
로그인 후 복사

다양한 객체 유형을 감지하도록 확장하세요.


var is ={
  types : ["Array", "Boolean", "Date", "Number", "Object", "RegExp", "String", "Window", "HTMLDocument"]
};
for(var i = 0, c; c = is.types[i ++ ]; ){
  is[c] = (function(type){
    return function(obj){
      return Object.prototype.toString.call(obj) == "[object " + type + "]";
    }
  )(c);
}
alert(is.Array([])); // true
alert(is.Date(new Date)); // true
alert(is.RegExp(/reg/ig)); // true
로그인 후 복사

위 내용은 JavaScript가 연산자와 속성을 사용하여 객체 유형을 결정하는 방법 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

권장 사항: 우수한 JS 오픈 소스 얼굴 감지 및 인식 프로젝트 권장 사항: 우수한 JS 오픈 소스 얼굴 감지 및 인식 프로젝트 Apr 03, 2024 am 11:55 AM

얼굴 검출 및 인식 기술은 이미 상대적으로 성숙하고 널리 사용되는 기술입니다. 현재 가장 널리 사용되는 인터넷 응용 언어는 JS입니다. 웹 프런트엔드에서 얼굴 감지 및 인식을 구현하는 것은 백엔드 얼굴 인식에 비해 장점과 단점이 있습니다. 장점에는 네트워크 상호 작용 및 실시간 인식이 줄어 사용자 대기 시간이 크게 단축되고 사용자 경험이 향상된다는 단점이 있습니다. 모델 크기에 따라 제한되고 정확도도 제한됩니다. js를 사용하여 웹에서 얼굴 인식을 구현하는 방법은 무엇입니까? 웹에서 얼굴 인식을 구현하려면 JavaScript, HTML, CSS, WebRTC 등 관련 프로그래밍 언어 및 기술에 익숙해야 합니다. 동시에 관련 컴퓨터 비전 및 인공지능 기술도 마스터해야 합니다. 웹 측면의 디자인으로 인해 주목할 가치가 있습니다.

C 언어에서 += 연산자의 의미와 사용법 분석 C 언어에서 += 연산자의 의미와 사용법 분석 Apr 03, 2024 pm 02:27 PM

+= 연산자는 왼쪽 피연산자의 값을 오른쪽 피연산자의 값에 더하고 그 결과를 왼쪽 피연산자에 할당하는 데 사용됩니다. 이는 숫자형에 적합하며 왼쪽 피연산자는 쓰기 가능해야 합니다.

PHP 및 JS 개발 팁: 주식 캔들 차트 그리기 방법 익히기 PHP 및 JS 개발 팁: 주식 캔들 차트 그리기 방법 익히기 Dec 18, 2023 pm 03:39 PM

인터넷 금융의 급속한 발전으로 인해 주식 투자는 점점 더 많은 사람들의 선택이 되었습니다. 주식 거래에서 캔들 차트는 주가의 변화 추세를 보여주고 투자자가 보다 정확한 결정을 내리는 데 도움이 되는 일반적으로 사용되는 기술적 분석 방법입니다. 이 기사에서는 PHP와 JS의 개발 기술을 소개하고 독자가 주식 캔들 차트를 그리는 방법을 이해하도록 유도하며 구체적인 코드 예제를 제공합니다. 1. 주식 캔들 차트의 이해 주식 캔들 차트를 그리는 방법을 소개하기 전에 먼저 캔들 차트가 무엇인지부터 이해해야 합니다. 캔들스틱 차트는 일본인이 개발했습니다.

간단한 JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법 간단한 JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법 Jan 05, 2024 pm 06:08 PM

JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법, 특정 코드 예제가 필요합니다. 서문: 웹 개발에서는 서버와의 데이터 상호 작용이 종종 포함됩니다. 서버와 통신할 때 반환된 HTTP 상태 코드를 가져와서 작업의 성공 여부를 확인하고 다양한 상태 코드에 따라 해당 처리를 수행해야 하는 경우가 많습니다. 이 기사에서는 JavaScript를 사용하여 HTTP 상태 코드를 얻는 방법과 몇 가지 실용적인 코드 예제를 제공합니다. XMLHttpRequest 사용

Python 구문 마인드맵: 코드 구조에 대한 심층적인 이해 Python 구문 마인드맵: 코드 구조에 대한 심층적인 이해 Feb 21, 2024 am 09:00 AM

Python은 간단하고 읽기 쉬운 구문으로 다양한 분야에서 널리 사용됩니다. 프로그래밍 효율성을 높이고 코드 작동 방식을 깊이 이해하려면 Python 구문의 기본 구조를 숙지하는 것이 중요합니다. 이를 위해 이 기사에서는 Python 구문의 다양한 측면을 자세히 설명하는 포괄적인 마인드 맵을 제공합니다. 변수 및 데이터 유형 변수는 Python에서 데이터를 저장하는 데 사용되는 컨테이너입니다. 마인드맵은 정수, 부동 소수점 숫자, 문자열, 부울 값 및 목록을 포함한 일반적인 Python 데이터 유형을 보여줍니다. 각 데이터 유형에는 고유한 특성과 작업 방법이 있습니다. 연산자 연산자는 데이터 유형에 대한 다양한 작업을 수행하는 데 사용됩니다. 마인드맵은 산술 연산자, 비율 등 Python의 다양한 연산자 유형을 다룹니다.

js와 vue의 관계 js와 vue의 관계 Mar 11, 2024 pm 05:21 PM

js와 vue의 관계: 1. 웹 개발의 초석인 JS 2. 프론트엔드 프레임워크로서의 Vue.js의 등장 3. JS와 Vue의 상호 보완적인 관계 4. JS와 Vue의 실제 적용 Vue.

JavaScript에서 HTTP 상태 코드를 쉽게 얻는 방법 JavaScript에서 HTTP 상태 코드를 쉽게 얻는 방법 Jan 05, 2024 pm 01:37 PM

JavaScript에서 HTTP 상태 코드를 얻는 방법 소개: 프런트 엔드 개발에서 우리는 종종 백엔드 인터페이스와의 상호 작용을 처리해야 하며 HTTP 상태 코드는 매우 중요한 부분입니다. HTTP 상태 코드를 이해하고 얻는 것은 인터페이스에서 반환된 데이터를 더 잘 처리하는 데 도움이 됩니다. 이 기사에서는 JavaScript를 사용하여 HTTP 상태 코드를 얻는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. HTTP 상태 코드란 무엇입니까? HTTP 상태 코드는 브라우저가 서버에 요청을 시작할 때 서비스가

Python 연산자: 초보자부터 마스터까지 최고의 가이드 Python 연산자: 초보자부터 마스터까지 최고의 가이드 Mar 11, 2024 am 09:13 AM

Python 연산자 소개 연산자는 둘 이상의 피연산자 사이에서 연산을 수행하는 데 사용되는 특수 기호 또는 키워드입니다. Python은 기본적인 수학 연산부터 복잡한 데이터 조작에 이르기까지 광범위한 용도를 포괄하는 다양한 연산자를 제공합니다. 수학 연산자 수학 연산자는 일반적인 수학 연산을 수행하는 데 사용됩니다. 여기에는 다음이 포함됩니다. 연산자 연산 예 + 덧셈 a + b - 뺄셈 a-b * 곱셈 a * b / 나눗셈 a / b % 모듈로 연산(나머지 취함) a % b ** 거듭제곱 연산 a ** b // 정수 나눗셈(생략 나머지) a//b 논리 연산자 논리 연산자는 부울 값을 연결하고 조건을 평가하는 데 사용됩니다. 여기에는 다음이 포함됩니다. 연산자 연산 예제 및 논리 및 a및b논리 또는 aorbnot논리 nota비교 연산

See all articles