이 기사는 객체가 JavaScript에서 비어 있는지 확인하는 방법을 신속하게 설명합니다.
매일 JavaScript 개발에서 객체가 비어 있는지 확인해야 할 수도 있습니다. 당신이 이것을 한 적이 있다면, 당신은 아마도 직접 솔루션이 하나도 없다는 것을 알고있을 것입니다. 그러나 다양한 기술을 사용하여 자신의 사용 사례에 맞는 사용자 정의 솔루션을 만들 수 있습니다. 또한 프로젝트에서 JavaScript 유틸리티 라이브러리를 사용하는 경우 라이브러리는 이미 객체가 비어 있는지 확인하는 내장 방법을 제공 할 수 있습니다.
이 섹션에서는 ES5 버전을 지원하는 최신 브라우저에서 사용할 수있는 다양한 방법에 대해 설명합니다.
Object.keys()
메소드는 주어진 개체의 열거 속성 속성을 반환합니다. 따라서이 배열의 길이를 계산하여 객체에 속성이 있는지 확인할 수 있습니다.다음 예를 살펴 보겠습니다.
함수 isemptyObject (obj) { return object.keys (obj) .length === 0; } console.log (isemptyObject ({})); var bar = { "foo": "1"}; console.log (object.keys (bar) .length); console.log (isemptyobject (bar));
위의 예에서 볼 수 있듯이 foo
속성이 첨부되므로 isEmptyObject
함수는 다른 값으로 isEmptyObject
함수를 반환합니다.
isEmptyObject
는 regexp 객체에 대해 true
반환합니다.
console.log (isemptyObject (date.now ()); // 출력 : true console.log (isemptyObject (new regexp ()); // 출력 : true
또한이 방법은 정의되지 않은 값으로 호출되므로주의하십시오. 예외를 일으킬 수 있습니다. 나중에 빈 입력에 실패하지 않는 방탄 솔루션을 생성합니다.
console.log (isemptyObject (null));
Object.getOwnPropertyNames()
메소드는 주어진 객체의 모든 속성 배열을 반환합니다. Object.keys()
메소드와 동일하게 보일 수 있지만 Object.getOwnPropertyNames()
메소드는 또한 발전 불가능한 속성을 고려하고 Object.keys()
누적 할 수없는 일부 속성을 놓친다.다음 예를 살펴 보겠습니다.
함수 isemptyObject (obj) { return object.getOnPropertyNames (OBJ) .length === 0; } console.log (isemptyObject ({})); var bar = { "foo": "1"}; console.log (object.getownPropertyNames (bar) .length); console.log (isemptyobject (bar));
보시다시피, Object.keys()
사용하여 널 값을 테스트하십시오.
그러나 가장자리 케이스는 약간 다르지만 Date
약간 다르지만 null
또는 JSON.stringify
의 경우 .Stringify는 false
반환합니다.
주어진 객체가 비어 있는지 확인하려면 {}
사용하십시오.
다음 예를 살펴 보겠습니다.
함수 isemptyObject (obj) { reture json.stringify (obj) === '{}'; } console.log (isemptyObject ({})); var bar = { "foo": "1"}; console.log (json.stringify (bar)); // 출력 : { "foo": "1"} console.log (isemptyobject (bar));
다시, 가장자리 상황은 약간 다릅니다. "1651283138454"는 Regexp에서 사용됩니다. 따라서 Object.getOwnPropertyNames
메소드를 사용하십시오!
console.log (isemptyObject (date.now ()); console.log (isemptyObject (new regexp ()); // 출력 : true
또 다른 변화는 false
이며, 이는 당신이 기대하지 않을 수 있습니다.
console.log (isemptyObject (null));
Object.entries()
메소드 배열 배열을 반환하고 각 요소는 객체 속성의 키 값 쌍의 배열입니다.다음 예를 살펴보고 정확히 어떻게 작동하는지 이해합시다.
함수 isemptyObject (obj) { return object.entries (obj) .length === 0; } console.log (isemptyObject ({})); var bar = { "foo": "1"}; Console.log (Object.entries (bar)); // 출력 : [[ 'foo', '1']] console.log (object.entries (bar) .length); console.log (isemptyobject (bar));
보시다시피, Object.keys()
메소드는 regexp 객체 에지 케이스 예제에 대해 동일한 결과를 제공합니다. 정의되지 않은 입력의 경우 예외도 발생합니다.
console.log (isemptyObject (date.now ()); // 출력 : true console.log (isemptyObject (new regexp ()); // 출력 : true
위에서 언급 한 간단한 솔루션의 한 가지 문제는 특수 객체 (예 : 날짜), 정의되지 않은 값 또는 프리미티브 (예 : 정수)에 대해 일관성이없는 결과를 제공한다는 것입니다. 이것은 간단하지만 더 안정적인 솔루션입니다.
함수 isemptyObject (value) { const type = typeof 값 const isobject = value! = null && type === 'Object' isobject && object.keys (value) .length === 0; }
이 방법은 이름에 따라 정확하게 수행됩니다. 입력 값이 객체와 빈 개체 인 경우에만 true
반환합니다. null
및 undefined
값으로 작동합니다. 객체가 아니기 때문에 false
반환합니다. Regexp와 같은 특수 객체의 경우 특수 키를 정의하지 않기 때문에 true
반환됩니다. 또한 빈 배열에 대해서도 true
반환하고 비어 있지 않은 배열의 경우 false
반환됩니다.
이 섹션에서는 이전 브라우저에서도 작동하는 솔루션에 대해 설명합니다. 이 방법은 객체가 비어 있는지 확인하기위한 내장 방법이 없을 때 JavaScript ES5 ERA 이전에 종종 사용되었습니다.
다음 예를 살펴 보겠습니다.
함수 isemptyObject (obj) { for (obj의 var 속성) { if (obj.hasownproperty (property)) { 거짓을 반환합니다. } } 진실을 반환하십시오. } console.log (isemptyObject ({})); console.log (isemptyObject ({ "foo": "1"});
위의 예에서는 객체가 비어 있는지 확인하기 위해 호출 할 수있는 사용자 정의 기능을 구축했습니다. 매개 변수를 허용하고 테스트 할 객체를 전달해야합니다. 거짓으로, 그렇지 않으면, 우리는 다른 값으로 isEmptyObject
함수를 반환합니다. 위의 예에서 볼 수 있듯이 다른 값으로 호출하고 isEmptyObject
메소드를 사용하여 출력을 기록하여 객체가 비어 있는지 확인할 수 있습니다.
아래 예제를 빨리 살펴 보겠습니다.
jQuery.isemptyObject ({}); jQuery.isemptyObject ({ "foo": "1"});
보시 _.isEmpty()
사용하는 것은 매우 간단합니다.
이 기사에서는 객체가 JavaScript에서 비어 있는지 확인하는 몇 가지 다른 방법에 대해 논의합니다. JavaScript 프로그래밍에 대한 다른 자습서를 확인하십시오!
이 게시물은 Neema Muganga의 기여로 업데이트되었습니다.
위 내용은 자바 스크립트에서 객체가 비어 있는지 확인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!