Utilitaires de saisie – Défis JavaScript
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 :
- Nul
- Indéfini
- Booléen
- Numéro
- BigInt
- Chaîne
- 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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

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

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

Clothoff.io
Dissolvant de vêtements AI

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 !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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

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

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

FacultatifChaining (?.) Injavascriptsafely accessifiedProperties enrituration

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.

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

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.

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.
