웹 프론트엔드 JS 튜토리얼 Javascript_javascript 팁에서 for in 루프 및 hasOwnProperty 사용

Javascript_javascript 팁에서 for in 루프 및 hasOwnProperty 사용

May 16, 2016 pm 05:32 PM
for hasownproperty

in 연산자와 비교하여 for in은 객체의 속성을 반복할 때 프로토타입 체인을 순회합니다. For in은 배열의 길이 속성과 같은 열거할 수 없는 속성을 읽지 않습니다. 요약: 객체에 특정 속성이 있는지 감지할 때 hasOwnProperty는 이 작업을 완료할 수 있는 유일한 메서드입니다. for in 루프에서 판단을 위해 hasOwnProperty를 추가하는 것이 좋습니다. 이는 로컬 프로토타입 확장으로 인해 발생하는 오류를 효과적으로 방지할 수 있습니다.

in 연산자와 비교하여 for in은 객체의 속성을 반복할 때 프로토타입 체인을 순회합니다. for in은 배열의 길이 속성과 같은 열거할 수 없는 속성을 읽지 않습니다.

코드 복사 코드는 다음과 같습니다.

// Extend Object.prototype
Object.prototype.bar = 1;
var foo = {moo: 2};
for(var i in foo) {
console.log(i);
}


for in 루프의 동작을 변경할 수 없습니다. 루프 본문에서 특정 속성을 필터링해야 하는 경우 Object.prototype의 hasOwnProperty 메서드를 사용할 수 있습니다. 완료하세요.

팁: for in 루프는 항상 전체 프로토타입 체인을 순회하므로 여러 상속된 객체를 순회할 때는 효율성이 떨어집니다.

hasOwnProperty를 사용하여 필터링

코드 복사 코드는 다음과 같습니다.

// 위 예에서는 여전히 foo 객체를 대상으로 하고 있습니다.
for (var i in foo) {
if (foo.hasOwnProperty(i)) {
console.log(i); 🎜>}
}


예제에서는 hasOwnProperty가 사용되었기 때문에 결국 moo가 출력됩니다. hasOwnProperty가 무시되면 코드는 예상치 못한 결과를 출력합니다. Object.prototype)이 확장되었습니다.

Prototype 프레임워크는 Javascript 원본 객체를 확장한 클래스 라이브러리로 널리 사용됩니다. 프레임워크 도입 시 필터링 및 판단을 위해 hasOwnProperty를 사용하지 않으면 출력 결과는 다음과 같습니다. 당신이 원하는 것이 아니라는 것을 보장합니다.

모범 사례

입력 시 항상 hasOwnProperty를 사용하여 판단하는 것이 좋습니다. 실행 중인 코드 환경이 오염되었는지 여부는 누구도 보장할 수 없습니다.

hasOwnProperty
객체에 프로토타입 체인에 없는 사용자 정의 속성이 있는지 확인하려면 hasOwnProperty 메서드를 사용해야 합니다. 이 메서드는 Object.prototype에서 상속됩니다. .

팁: 속성이 존재할 수 있지만 해당 값이 정의되지 않았기 때문에 속성이 정의되지 않았는지 여부를 완전히 감지할 수 없습니다. hasOwnProperty는 프로토타입 체인을 순회하지 않고 개체 속성을 처리할 수 있는 Javascript의 유일한 메서드입니다.


코드 복사 코드는 다음과 같습니다.
// Extend Object.prototype
Object.prototype.bar = 1;
var foo = {goo: 정의되지 않음};

foo.bar; // 1
'bar' // true

foo.hasOwnProperty('bar'); // false
foo.hasOwnProperty('goo'); // true


hasOwnProperty만이 올바른 예상 결과를 제공합니다. , 이는 객체의 속성을 반복할 때 필요합니다. 객체의 프로토타입 체인에 정의된 속성을 제외할 수 있는 다른 방법은 없습니다.

속성으로서의 hasOwnProperty

Javascript는 hasOwnProperty를 키워드나 예약어로 보호하지 않으므로 객체에 동일한 이름의 속성이 있는 경우 확장된 hasOwnProperty를 사용하여 올바른 결과.


코드 복사 코드는 다음과 같습니다.
var foo = {
hasOwnProperty: function() {
return false;
},
bar: 'Here be Dragons'
};
foo.hasOwnProperty('bar'); // 항상 false를 반환합니다.
// 다른 hasOwnProperty를 사용하여 호출하고 이를 foo로 설정
{}.hasOwnProperty.call(foo, 'bar') // true


요약
객체에 특정 속성이 있는지 감지할 때 이 작업을 완료할 수 있는 유일한 메서드는 hasOwnProperty입니다. for in 루프에서 판단을 위해 hasOwnProperty를 추가하는 것이 좋습니다. 이는 로컬 프로토타입 확장으로 인해 발생하는 오류를 효과적으로 방지할 수 있습니다.
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 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 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

kernel_security_check_failure 블루 스크린을 해결하는 17가지 방법 kernel_security_check_failure 블루 스크린을 해결하는 17가지 방법 Feb 12, 2024 pm 08:51 PM

Kernelsecuritycheckfailure(커널 검사 실패)는 비교적 일반적인 유형의 중지 코드입니다. 그러나 이유가 무엇이든 블루 스크린 오류로 인해 많은 사용자가 매우 괴로워합니다. 이 사이트에서는 사용자에게 17가지 유형을 주의 깊게 소개합니다. kernel_security_check_failure 블루 스크린에 대한 17가지 솔루션 방법 1: 모든 외부 장치 제거 사용 중인 외부 장치가 Windows 버전과 호환되지 않으면 Kernelsecuritycheckfailure 블루 스크린 오류가 발생할 수 있습니다. 이렇게 하려면 컴퓨터를 다시 시작하기 전에 모든 외부 장치를 분리해야 합니다.

Win10에서 비즈니스용 Skype를 제거하는 방법은 무엇입니까? 컴퓨터에서 Skype를 완전히 제거하는 방법 Win10에서 비즈니스용 Skype를 제거하는 방법은 무엇입니까? 컴퓨터에서 Skype를 완전히 제거하는 방법 Feb 13, 2024 pm 12:30 PM

Win10 스카이프를 제거할 수 있습니까? 이것은 많은 사용자가 알고 싶어하는 질문입니다. 많은 사용자가 이 응용 프로그램이 컴퓨터의 기본 프로그램에 포함되어 있고 이를 삭제하면 시스템 작동에 영향을 미칠 것이라고 걱정하기 때문입니다. 이 웹사이트 도움말 사용자 Win10에서 비즈니스용 Skype를 제거하는 방법을 자세히 살펴보겠습니다. Win10에서 비즈니스용 Skype를 제거하는 방법 1. 컴퓨터 바탕 화면에서 Windows 아이콘을 클릭한 다음 설정 아이콘을 클릭하여 들어갑니다. 2. "적용"을 클릭하세요. 3. 검색창에 "Skype"를 입력하고 검색된 결과를 클릭하여 선택하세요. 4. "제거"를 클릭하세요. 5

JavaScript에서 n의 계승을 찾기 위해 for를 사용하는 방법 JavaScript에서 n의 계승을 찾기 위해 for를 사용하는 방법 Dec 08, 2021 pm 06:04 PM

for를 사용하여 n 계승을 찾는 방법: 1. "for (var i=1;i<=n;i++){}" 문을 사용하여 루프 순회 범위를 "1~n"으로 제어합니다. 2. 루프에서; body에서는 "cj *=i"를 사용합니다. 1부터 n까지의 숫자를 곱하고 그 결과를 변수 cj에 할당합니다. 3. 루프가 끝나면 변수 cj의 값이 n의 계승이 되어 출력됩니다.

foreach와 for 루프의 차이점은 무엇입니까 foreach와 for 루프의 차이점은 무엇입니까 Jan 05, 2023 pm 04:26 PM

차이점: 1. for는 인덱스를 통해 각 데이터 요소를 반복하는 반면 forEach는 JS 기본 프로그램을 통해 배열의 데이터 요소를 반복합니다. 2. for는 break 키워드를 통해 루프 실행을 종료할 수 있지만 forEach는 그렇지 않습니다. for는 루프 변수의 값을 제어하여 루프 실행을 제어할 수 있지만 forEach는 루프 외부에서 루프 변수를 호출할 수 없지만 forEach는 루프 외부에서 루프 변수를 호출할 수 없습니다. forEach보다 높습니다.

hasown속성을 사용하는 방법 hasown속성을 사용하는 방법 Dec 04, 2023 am 11:21 AM

hasOwnProperty는 JavaScript의 내장 객체 프로토타입(Object.prototype)에 대한 메소드로, 프로토타입 체인에서 상속된 속성이 아닌 객체 자체 속성에 지정된 속성이 포함되어 있는지 확인하는 데 사용됩니다. 기본 구문은 "obj.hasOwnProperty(prop)"입니다.

Python의 일반적인 흐름 제어 구조는 무엇입니까? Python의 일반적인 흐름 제어 구조는 무엇입니까? Jan 20, 2024 am 08:17 AM

Python의 일반적인 흐름 제어 구조는 무엇입니까? Python에서 흐름 제어 구조는 프로그램의 실행 순서를 결정하는 데 사용되는 중요한 도구입니다. 이를 통해 다양한 조건에 따라 다양한 코드 블록을 실행하거나 코드 블록을 반복적으로 실행할 수 있습니다. 다음은 Python의 일반적인 프로세스 제어 구조를 소개하고 해당 코드 예제를 제공합니다. 조건문(if-else): 조건문을 사용하면 다양한 조건에 따라 다양한 코드 블록을 실행할 수 있습니다. 기본 구문은 다음과 같습니다. if 조건 1: #when 조건

JAVA의 간단한 for 루프에서 예외를 방지하는 방법은 무엇입니까? JAVA의 간단한 for 루프에서 예외를 방지하는 방법은 무엇입니까? Apr 26, 2023 pm 12:58 PM

소개 실제 비즈니스 프로젝트 개발에서는 주어진 목록에서 조건에 맞지 않는 요소를 제거하는 작업에 대해 모두가 익숙해야 겠죠? 많은 학생들이 그것을 달성하기 위한 여러 가지 방법을 즉시 생각할 수 있지만, 당신이 생각하는 모든 방법이 인간과 동물에게 무해합니까? 겉보기에 평범해 보이는 많은 작업이 실제로는 함정이며, 많은 초보자들이 조심하지 않으면 함정에 빠질 수 있습니다. 불행하게도 코드가 실행될 때 예외가 발생하고 오류가 보고된다면 이는 다행스러운 일입니다. 적어도 오류가 보고되지 않고 코드를 발견하고 해결할 수는 있습니다. 그러나 비즈니스에서는 설명할 수 없는 여러 가지 문제가 나타납니다. 이 문제에 주의를 기울이지 않으면 후속 사업에 숨겨진 위험이 발생할 수 있기 때문에 이는 더욱 비극적입니다. 그렇다면 구현 방법은 무엇입니까? 어떤 구현이 가능할까요?

예제 6개, 코드 조각 8개, Python의 For 루프에 대한 자세한 설명 예제 6개, 코드 조각 8개, Python의 For 루프에 대한 자세한 설명 Apr 11, 2023 pm 07:43 PM

Python은 for 루프를 지원하며 그 구문은 다른 언어(예: JavaScript 또는 Java)와 약간 다릅니다. 다음 코드 블록은 Python에서 for 루프를 사용하여 목록의 요소를 반복하는 방법을 보여줍니다. 위의 코드 조각은 세 글자를 별도의 줄에 인쇄합니다. 인쇄 문 뒤에 쉼표 ","를 추가하여 동일한 줄로 출력을 제한할 수 있습니다(인쇄하도록 지정된 문자가 많으면 "줄 바꿈"됩니다). 코드는 다음과 같습니다. 여러 줄이 아닌 한 줄로 표시 텍스트 내용의 경우 위 형식의 코드를 사용할 수 있습니다. Python은 또한 내장된 기능을 제공합니다.

See all articles