>웹 프론트엔드 >JS 튜토리얼 >유형 유틸리티 - JavaScript 과제

유형 유틸리티 - JavaScript 과제

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-30 08:12:27503검색

Type Utilities - JavaScript Challenges

소개

유형 확인은 일상적인 코딩 및 기술 인터뷰에서 JavaScript의 일반적인 관행입니다.

이 게시물의 모든 코드는 Github에서 확인할 수 있습니다.


원시 값

JavaScript에서 Object를 제외한 모든 유형은 언어의 가장 낮은 수준에서 직접 표현되는 불변 값을 정의합니다. 이러한 유형의 값을 원시 값이라고 합니다.

7개의 기본 값이 있습니다:

  1. 무효
  2. 정의되지 않음
  3. 부울
  4. 번호
  5. 빅인트
  6. 문자열
  7. 기호

null을 제외한 모든 기본 유형은 typeof 연산자로 테스트할 수 있습니다. typeof null은 "객체"를 반환하므로 null을 테스트하려면 === null을 사용해야 합니다.

따라서 첫 번째 유형의 유틸리티 함수를 얻습니다.

function isBoolean(value) {
  return typeof value === 'boolean';
}

function isString(value) {
  return typeof value === 'string';
}

function isNumber(value) {
  return typeof value === 'number';
}

function isSymbol(value) {
  return typeof value === 'symbol';
}

function isBigInt(value) {
  return typeof value === 'bigint';
}

function isUndefined(value) {
  return typeof value === 'undefined';
}

function isNull(value) {
  return value === null;
}

// Usage example
console.log(isSymbol(Symbol('test'))); // => true
console.log(isNull(null)); // => true
console.log(isUndefined(undefined)); // => true
console.log(isNumber(1)); // => true
console.log(isString('')); // => true
console.log(isBoolean(true)); // => true
console.log(isBigInt(9007199254740991n)); // => true

사물

기본 유형이 아닌 모든 것은 JavaScript의 객체입니다. 여기에는 다음이 포함됩니다.

  • 일반 물체
  • 배열
  • 기능
  • 날짜
  • 정규식
  • 기타 내장 개체 유형

여기에 배열, 함수, 객체에 대한 두 번째 유틸리티 함수가 있습니다.

function isArray(value) {
  return Array.isArray(value);
}

function isFunction(value) {
  return typeof value === 'function';
}

function isObject(value) {
  // for null and undefined
  if (value == null) {
    return false;
  }

  return typeof value === 'object';
}

function isPlainObject(value) {
  // for null and undefined
  if (value == null) {
    return false;
  }

  const prototype = Object.getPrototypeOf(value);
  return prototype === Object.prototype || prototype === null;
}

// Usage example
console.log(isArray(new Array())); // => true
console.log(isObject(Object(null))); // => true
console.log(isFunction(Object.prototype.toString)); // => true
console.log(isPlainObject(Object.create(null))); // => true

Object.prototype.toString.call()

JavaScript에서 유형을 확인하는 방법에는 다음을 포함하여 여러 가지가 있습니다.

  • null을 제외한 모든 기본 유형에 대한 typeof
  • instanceof는 객체가 특정 생성자나 클래스의 인스턴스인지 여부를 결정합니다. 기본 값에서는 작동하지 않습니다.

Object.prototype.toString.call()은 JavaScript에서 유형을 확인하는 가장 안정적인 방법입니다.

다음을 통해 유형을 추출할 수 있습니다.

function getType(value) {
  const type = typeof value;

  if (type !== 'object') {
    return type;
  }

  return Object.prototype.toString
    .call(value)
    .slice(8, -1)
    .toLowerCase();
}

// Usage example
console.log(getType(1)); // => number
console.log(getType('')); // => string
console.log(getType({})); // => object
console.log(getType(null)); // => null
console.log(getType(undefined)); // => undefined
console.log(getType(Symbol())); // => symbol
console.log(getType(BigInt(1234567890123456789012345))); // => bigint
console.log(getType(function () {})); // => function
console.log(getType(new Date())); // => date
console.log(getType(new Map())); // => map
console.log(getType(new Set())); // => set 
console.log(getType(new RegExp("cat", "i"))); // => regex

참조

  • JavaScript 데이터 유형 및 데이터 구조 - MDN
  • 데이터 유형 - JavaScript.info
  • 참조 유형 - JavaScript.info
  • 그레이트프론트엔드

위 내용은 유형 유틸리티 - JavaScript 과제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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