Jenis Utiliti - Cabaran JavaScript

Mary-Kate Olsen
Lepaskan: 2024-10-30 08:12:27
asal
425 orang telah melayarinya

Type Utilities - JavaScript Challenges

pengenalan

Menyemak jenis ialah amalan biasa dalam JavaScript dalam pengekodan harian dan wawancara teknikal.

Anda boleh menemui semua kod dalam siaran ini di Github.


Nilai primitif

Dalam JavaScript, semua jenis kecuali Object mentakrifkan nilai tidak boleh diubah yang diwakili secara langsung pada tahap bahasa yang paling rendah. Kami merujuk kepada nilai jenis ini sebagai nilai primitif.

Terdapat 7 nilai primitif:

  1. Batal
  2. Tidak ditentukan
  3. Boolean
  4. Nombor
  5. BigInt
  6. Rentetan
  7. Simbol

Semua jenis primitif, kecuali null, boleh diuji oleh jenis operator. typeof null mengembalikan "objek", jadi seseorang itu perlu menggunakan === null untuk menguji null.

Oleh itu, kami mendapat fungsi utiliti jenis pertama.

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
Salin selepas log masuk

Objek

Semua yang bukan jenis primitif ialah objek dalam JavaScript. Ini termasuk:

  • Benda biasa
  • Susun atur
  • Fungsi
  • Tarikh
  • RegExps
  • Jenis objek terbina dalam lain

Inilah fungsi utiliti kedua untuk Tatasusunan, Fungsi, Objek.

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
Salin selepas log masuk

Object.prototype.toString.call()

Terdapat beberapa kaedah untuk menyemak jenis dalam JavaScript, termasuk:

  • typeof untuk semua jenis primitif kecuali null.
  • instanceof menentukan sama ada objek adalah contoh pembina atau kelas tertentu. Ia tidak berfungsi dengan nilai primitif.

Object.prototype.toString.call() ialah kaedah yang paling boleh dipercayai untuk menyemak jenis dalam JavaScript.

Kami boleh mengekstrak jenis dengan:

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
Salin selepas log masuk

Rujukan

  • Jenis data JavaScript dan struktur data - MDN
  • Jenis data - JavaScript.info
  • Jenis Rujukan - JavaScript.info
  • GreatFrontEnd

Atas ialah kandungan terperinci Jenis Utiliti - Cabaran JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!