JavaScript에서 값이 객체인지 확인

Hiten Kanwar 2023년10월12일
  1. instanceof 함수를 사용하여 JavaScript에서 값이 객체인지 여부 확인
  2. typeof() 함수를 사용하여 JavaScript에서 값이 객체인지 여부 확인
  3. 사용자 정의 함수를 사용하여 JavaScript에서 값이 객체인지 여부 확인
  4. getPrototypeOf() 메서드를 사용하여 JavaScript에서 값이 객체인지 여부 확인
JavaScript에서 값이 객체인지 확인

JavaScript에서 정의된 모든 값은 객체 또는 기본 요소입니다. 객체가 아니고 메서드가 없는 모든 값을 프리미티브(primitive)라고 합니다. 원시적이지 않은 것은 대상이든 아니든.

이 자습서에서는 값이 객체인지 여부를 확인합니다.

instanceof 함수를 사용하여 JavaScript에서 값이 객체인지 여부 확인

런타임에 개체 유형을 반환하는 instanceof 메서드를 사용하여 값을 확인합니다.

다음 예제에서 함수는 값이 객체 유형인 경우 true를 반환합니다.

const test = {};
function isObject(val) {
  return val instanceof Object;
}
console.log(isObject(test));

출력:

true

그러나 이 방법이 모든 경우에 적용되는 것은 아닙니다. isObject(Object.prototype)isObject(Object.create(null))는 False를 반환합니다.

typeof() 함수를 사용하여 JavaScript에서 값이 객체인지 여부 확인

typeof() 함수를 사용하여 객체의 유형을 확인할 수 있습니다.

예를 들어,

const test = {};
function isObject(val) {
  return (typeof val === 'object');
}
console.log(isObject(test));

출력:

true

이 방법은 모든 테스트 케이스에서 작동하지 않습니다. null 테스트 케이스에 대해 거짓 긍정을 반환하고 함수에 대해 거짓 부정을 반환합니다. isObject(Object)도 False를 반환합니다.

이 함수를 사용하여 위에서 언급한 제한 사항을 해결할 다른 함수를 정의할 수도 있습니다.

아래 코드를 참조하십시오.

const test = {};
function t() {};
function isObject(val) {
  if (val === null) {
    return false;
  }
  return ((typeof val === 'function') || (typeof val === 'object'));
}
console.log(isObject(test));
console.log(isObject(t));

출력:

true 
true

위 예제의 함수는 값이 NULL이면 False를 반환합니다. 값이 function 유형이거나 object 유형이면 true를 반환합니다. 그렇지 않으면 False를 반환합니다.

사용자 정의 함수를 사용하여 JavaScript에서 값이 객체인지 여부 확인

객체의 생성자와 클래스를 기반으로 작업을 완료하기 위해 이러한 함수를 더 정의할 수 있습니다.

예를 들어,

const test = {};
function isObject(obj) {
  return obj === Object(obj);
}
function isObject2(obj) {
  return obj.constructor.toString().indexOf('Object') > -1;
}
console.log(isObject(test));
console.log(isObject2(test));

출력:

true
true

위의 예에서 우리는 주어진 값이 객체인지 확인할 수 있는 두 개의 함수를 만들었습니다.

getPrototypeOf() 메서드를 사용하여 JavaScript에서 값이 객체인지 여부 확인

getPrototypeOf 메소드는 인수가 객체가 아닌 경우 예외를 발생시킵니다. 주어진 값의 클래스 유형을 확인하는 데 사용할 수 있습니다.

예를 들어,

const test = {};
const object1 = Object.create(test);
console.log(Object.getPrototypeOf(object1) === test);

출력:

true

관련 문장 - JavaScript Object