Maison interface Web js tutoriel Utilitaires de saisie – Défis JavaScript

Utilitaires de saisie – Défis JavaScript

Oct 30, 2024 am 08:12 AM

Type Utilities - JavaScript Challenges

Introduction

La vérification des types est une pratique courante en JavaScript dans le codage quotidien et les entretiens techniques.

Vous pouvez trouver tout le code dans cet article sur Github.


Valeurs primitives

En JavaScript, tous les types sauf Object définissent des valeurs immuables représentées directement au niveau le plus bas du langage. Nous appelons les valeurs de ces types valeurs primitives.

Il existe 7 valeurs primitives :

  1. Nul
  2. Indéfini
  3. Booléen
  4. Numéro
  5. BigInt
  6. Chaîne
  7. Symbole

Tous les types primitifs, sauf null, peuvent être testés par l'opérateur typeof. typeof null renvoie "object", il faut donc utiliser === null pour tester null.

Par conséquent, nous obtenons la fonction utilitaire de premier type.

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

Objets

Tout ce qui n'est pas un type primitif est un objet en JavaScript. Cela comprend :

  • Objets simples
  • Tableaux
  • Fonctions
  • Dates
  • RegExps
  • Autres types d'objets intégrés

Voici la deuxième fonction utilitaire pour les tableaux, fonctions, objets.

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

Objet.prototype.toString.call()

Il existe plusieurs méthodes pour vérifier les types en JavaScript, notamment :

  • typeof pour tous les types primitifs sauf null.
  • instanceof détermine si un objet est une instance d'un constructeur ou d'une classe spécifique. Cela ne fonctionne pas avec les valeurs primitives.

Object.prototype.toString.call() est la méthode la plus fiable pour la vérification de type en JavaScript.

On peut extraire les types par :

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

Référence

  • Types de données et structures de données JavaScript - MDN
  • Types de données - JavaScript.info
  • Type de référence - JavaScript.info
  • GreatFrontEnd

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1600
276
Types conditionnels avancés en dactylographie Types conditionnels avancés en dactylographie Aug 04, 2025 am 06:32 AM

Les types de conditions avancées de TypeScript implémentent le jugement logique entre les types via TextendU? X: Y Syntaxe. Ses capacités de base se reflètent dans les types de conditions distribuées, l'inférence de type inférieure et la construction d'outils de type complexe. 1. Le type conditionnel est distribué dans les paramètres de type nu et peut automatiquement diviser le type de joint, tel que pour obtenir la chaîne [] | nombre []. 2. Utiliser la distribution pour construire des outils de filtrage et d'extraction: exclut exclut les types via TextendU? Never: T, extraire extrait les points communs via TextendU? T: jamais, et des filtres non nuls nuls / non définis. 3

Architecture Micro Frontend: un guide de mise en œuvre pratique Architecture Micro Frontend: un guide de mise en œuvre pratique Aug 02, 2025 am 08:01 AM

MicrofronttendSSolvescalingCallegengeSInLargeTeamsByAnabled indépendante développement et élaboration de choOsanIntegrationsStrategy: UseModuleFederationInwebpack5ForruntimeLoadingAndTrue Independence, Build-Time IntegrationForsIpleSetups, Oriframes / webcomponents webcomponents

Quelles sont les différences entre VAR, LET et const dans JavaScript? Quelles sont les différences entre VAR, LET et const dans JavaScript? Aug 02, 2025 pm 01:30 PM

varisfunction-scoped,canbereassigned,hoistedwithundefined,andattachedtotheglobalwindowobject;2.letandconstareblock-scoped,withletallowingreassignmentandconstnotallowingit,thoughconstobjectscanhavemutableproperties;3.letandconstarehoistedbutnotinitial

Qu'est-ce que le chaînage facultatif (?.) Dans JS? Qu'est-ce que le chaînage facultatif (?.) Dans JS? Aug 01, 2025 am 06:18 AM

FacultatifChaining (?.) Injavascriptsafely accessifiedProperties enrituration

Générer des puzzles à double chocolat résolus: un guide des structures de données et des algorithmes Générer des puzzles à double chocolat résolus: un guide des structures de données et des algorithmes Aug 05, 2025 am 08:30 AM

Cet article explore en profondeur comment générer automatiquement des puzzles solvables pour le jeu de puzzle à double choco. Nous introduirons une structure de données efficace - un objet cellulaire basé sur une grille 2D qui contient des informations limites, des couleurs et de l'état. Sur cette base, nous développerons un algorithme récursif de reconnaissance de blocs (similaire à la recherche en profondeur-première) et comment l'intégrer dans le processus de génération de puzz itérative pour garantir que les énigmes générées respectent les règles du jeu et sont résolubles. L'article fournira un exemple de code et discutera des considérations clés et des stratégies d'optimisation dans le processus de génération.

Comment pouvez-vous supprimer une classe CSS d'un élément DOM à l'aide de JavaScript? Comment pouvez-vous supprimer une classe CSS d'un élément DOM à l'aide de JavaScript? Aug 05, 2025 pm 12:51 PM

La méthode la plus courante et recommandée pour supprimer les classes CSS des éléments DOM à l'aide de JavaScript est via la méthode Suppor () de la propriété ClassList. 1. Utilisez Element.ClassList.Remove ('ClassName') pour supprimer en toute sécurité une seule ou plusieurs classes, et aucune erreur ne sera signalée même si la classe n'existe pas; 2. La méthode alternative consiste à utiliser directement la propriété ClassName et à supprimer la classe par remplacement de chaîne, mais il est facile de causer des problèmes en raison d'une correspondance régulière ou d'un traitement d'espace incorrect, donc il n'est pas recommandé; 3. Vous pouvez d'abord juger si la classe existe, puis la supprimer via element.classList.Contains (), mais ce n'est généralement pas nécessaire; 4.Classlist

Quelle est la syntaxe de classe en JavaScript et comment est-elle liée aux prototypes? Quelle est la syntaxe de classe en JavaScript et comment est-elle liée aux prototypes? Aug 03, 2025 pm 04:11 PM

La syntaxe de classe de JavaScript est un sucre syntaxique hérité par les prototypes. 1. La classe définie par la classe est essentiellement une fonction et des méthodes sont ajoutées au prototype; 2. Les instances recherchent les méthodes à travers la chaîne prototype; 3. La méthode statique appartient à la classe elle-même; 4. s'étend dans la chaîne prototype et la couche sous-jacente utilise toujours le mécanisme du prototype. La classe n'a pas changé l'essence de l'héritage du prototype JavaScript.

Vercel Spa Routing et chargement des ressources: résoudre les problèmes d'accès aux URL profonds Vercel Spa Routing et chargement des ressources: résoudre les problèmes d'accès aux URL profonds Aug 13, 2025 am 10:18 AM

Cet article vise à résoudre le problème du rafraîchissement de l'URL profond ou de l'accès direct, provoquant une défaillance de chargement des ressources de la page lors du déploiement d'applications (spas) de page unique sur Vercel. Le noyau est de comprendre la différence entre le mécanisme de réécriture de routage de Vercel et les chemins relatifs d'analyse du navigateur. En configurant Vercel.json pour rediriger tous les chemins vers index.html et corriger la méthode de référence des ressources statiques dans HTML, modifiez le chemin relatif en chemin absolu, en vous assurant que l'application peut charger correctement toutes les ressources sous n'importe quelle URL.

See all articles