Rumah > Artikel > hujung hadapan web > Jenis Utiliti - Cabaran JavaScript
Menyemak jenis ialah amalan biasa dalam JavaScript dalam pengekodan harian dan wawancara teknikal.
Anda boleh menemui semua kod dalam siaran ini di Github.
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:
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
Semua yang bukan jenis primitif ialah objek dalam JavaScript. Ini termasuk:
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
Terdapat beberapa kaedah untuk menyemak jenis dalam JavaScript, termasuk:
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
Atas ialah kandungan terperinci Jenis Utiliti - Cabaran JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!