Heim  >  Artikel  >  Web-Frontend  >  Geben Sie Dienstprogramme ein – JavaScript-Herausforderungen

Geben Sie Dienstprogramme ein – JavaScript-Herausforderungen

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-30 08:12:27426Durchsuche

Type Utilities - JavaScript Challenges

Einführung

Das Überprüfen von Typen ist eine gängige Praxis in JavaScript im alltäglichen Codieren und bei technischen Interviews.

Den gesamten Code finden Sie in diesem Beitrag auf Github.


Primitive Werte

In JavaScript definieren alle Typen außer Object unveränderliche Werte, die direkt auf der untersten Ebene der Sprache dargestellt werden. Werte dieser Art bezeichnen wir als Primitivwerte.

Es gibt 7 Grundwerte:

  1. Null
  2. Undefiniert
  3. Boolescher Wert
  4. Nummer
  5. BigInt
  6. Zeichenfolge
  7. Symbol

Alle primitiven Typen außer null können mit dem Typeof-Operator getestet werden. typeof null gibt „object“ zurück, daher muss man === null verwenden, um auf null zu testen.

Daher erhalten wir die Dienstprogrammfunktion ersten Typs.

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

Objekte

Alles, was kein primitiver Typ ist, ist ein Objekt in JavaScript. Dazu gehört:

  • Einfache Objekte
  • Arrays
  • Funktionen
  • Termine
  • RegExps
  • Andere integrierte Objekttypen

Hier kommt die zweite Hilfsfunktion für Arrays, Funktionen, Objekte.

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()

Es gibt mehrere Methoden zum Überprüfen von Typen in JavaScript, darunter:

  • typeof für alle primitiven Typen außer null.
  • Instanz von bestimmt, ob ein Objekt eine Instanz eines bestimmten Konstruktors oder einer bestimmten Klasse ist. Es funktioniert nicht mit primitiven Werten.

Object.prototype.toString.call() ist die zuverlässigste Methode zur Typprüfung in JavaScript.

Wir können die Typen extrahieren durch:

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

Referenz

  • JavaScript-Datentypen und Datenstrukturen – MDN
  • Datentypen – JavaScript.info
  • Referenztyp – JavaScript.info
  • GreatFrontEnd

Das obige ist der detaillierte Inhalt vonGeben Sie Dienstprogramme ein – JavaScript-Herausforderungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn