ホームページ  >  記事  >  ウェブフロントエンド  >  型ユーティリティ - JavaScript の課題

型ユーティリティ - JavaScript の課題

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-30 08:12:27426ブラウズ

Type Utilities - JavaScript Challenges

導入

型のチェックは、日常のコーディングや技術面接において JavaScript で一般的に行われています。

この投稿のすべてのコードは Github で見つけることができます。


プリミティブ値

JavaScript では、Object を除くすべての型は、言語の最下位レベルで直接表現される不変の値を定義します。これらの型の値をプリミティブ値と呼びます。

7 つのプリミティブ値があります:

  1. ヌル
  2. 未定義
  3. ブール値
  4. 番号
  5. BigInt
  6. 文字列
  7. シンボル

null を除くすべてのプリミティブ型は、typeof 演算子でテストできます。 typeof null は「object」を返すため、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 では、プリミティブ型以外のものはすべてオブジェクトです。これには以下が含まれます:

  • 平面オブジェクト
  • 配列
  • 機能
  • 日付
  • 正規表現
  • その他の組み込みオブジェクト タイプ

ここでは、配列、関数、オブジェクトの 2 番目のユーティリティ関数を紹介します。

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。