Cet article vous présente les concepts des types de données couramment utilisés en JavaScript. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Les langages de programmation ont tous des structures de données intégrées, mais les structures de données des différents langages de programmation sont souvent différentes. Cet article tente de répertorier les structures de données intégrées et leurs propriétés dans le langage JavaScript, qui peuvent être utilisées pour construire d'autres structures de données et d'essayer de décrire autant que possible les différences par rapport aux autres langages.
1. Typage dynamique
JavaScript est un langage faiblement typé ou dynamique. Cela signifie que vous n'avez pas besoin de déclarer le type de la variable à l'avance, le type sera déterminé automatiquement lors de l'exécution du programme. Cela signifie également que vous pouvez utiliser la même variable pour enregistrer différents types de données :
Types de données courants JS
Les langages de programmation ont tous des structures de données intégrées, mais les structures de données de divers langages de programmation Il existe souvent des différences. Cet article tente de répertorier les structures de données intégrées et leurs propriétés dans le langage JavaScript, qui peuvent être utilisées pour construire d'autres structures de données et d'essayer de décrire autant que possible les différences par rapport aux autres langages.
1. Typage dynamique
JavaScript est un langage faiblement typé ou dynamique. Cela signifie que vous n'avez pas besoin de déclarer le type de la variable à l'avance, le type sera déterminé automatiquement lors de l'exécution du programme. Cela signifie également que vous pouvez utiliser la même variable pour enregistrer différents types de données :
var foo = 42; // foo is a Number now foo = "bar"; // foo is a String now foo = true; // foo is a Boolean now
La caractéristique du langage typé dynamiquement est la flexibilité, mais l'inconvénient est qu'il sacrifie certaines performances. Pour les langages typés dynamiquement, les types de variables peuvent être modifiés dynamiquement et ne peuvent pas être déterminés au moment de la compilation. Par conséquent, la vérification du type au moment de la compilation est relativement faible, ce qui entraînera de nombreuses erreurs de type qui ne pourront être découvertes qu'au moment de l'exécution.
2. Types de données
La dernière norme ECMAScript définit 7 types de données :
6 types primitifs :
Boolean Null Undefined Number String Symbol (ECMAScript 6 新定义)
3. (valeurs primitives)
Tous les types sauf Object sont immuables (la valeur elle-même ne peut pas être modifiée). Par exemple, contrairement au langage C, les chaînes en JavaScript sont immuables. Nous appelons ces types de valeurs « valeurs primitives ».
Type booléen (Boolean)Boolean représente une entité logique qui peut avoir deux valeurs : vrai et faux.
Type NullLe type Null n'a qu'une seule valeur : null Voir null et Null pour plus de détails.
Type non définiUne variable à laquelle aucune valeur n'a été attribuée aura une valeur par défaut de non défini. Pour plus de détails, voir non défini et Non défini.
Types de nombresSelon la norme ECMAScript, il n'existe qu'un seul type de nombre en JavaScript : une valeur binaire 64 bits double précision (-(263 -1) à 263 -1) basée sur la norme IEEE 754. . Il ne donne pas de type spécifique pour les entiers. En plus de pouvoir représenter des nombres à virgule flottante, il existe également des valeurs signées : +Infinity, -Infinity et NaN (Not-a-Number).
Pour vérifier si une valeur est supérieure ou inférieure à +/-Infini, vous pouvez utiliser les constantes Number.MAX_VALUE et Number.MIN_VALUE. De plus, dans ECMAScript 6, vous pouvez également utiliser la méthode Number.isSafeInteger() ainsi que Number.MAX_SAFE_INTEGER et Number.MIN_SAFE_INTEGER pour vérifier si la valeur se situe dans la plage des nombres à virgule flottante double précision. Au-delà de cette plage, les nombres en JavaScript ne sont plus sûrs, c'est-à-dire que seul le deuxième entier mathématique peut être représenté correctement dans les types de nombres JavaScript.
Le type numérique n'a qu'un seul entier, qui peut être représenté de deux manières : 0 peut être représenté par -0 et +0 ("0" est l'abréviation de +0). En pratique, cela a également peu d’impact. Par exemple +0 === -0 est vrai. Cependant, vous voudrez peut-être faire attention lorsque vous divisez par 0 :
42 / +0; // Infinity 42 / -0; // -Infinity
Type de chaîne
Le type de chaîne JavaScript est utilisé pour représenter des données texte. Il s'agit d'un "élément" d'un ensemble de valeurs entières non signées de 16 bits. Chaque élément de la chaîne occupe une position dans la chaîne. Le premier élément a l’indice 0, le suivant a l’indice 1, et ainsi de suite. La longueur d'une chaîne est le nombre de ses éléments.
Contrairement aux langages de type C, les chaînes JavaScript sont immuables. Cela signifie qu’une fois la chaîne créée, elle ne peut plus être modifiée. Cependant, il est possible de créer de nouvelles chaînes basées sur des opérations sur la chaîne d'origine. Par exemple :
Obtenez une sous-chaîne d'une chaîne en sélectionnant des lettres individuelles ou en utilisant String.substr() Pour connecter deux chaînes, utilisez l'opérateur de concaténation (+) ou String.concat().
<.>Faites attention au « type de chaîne » dans le code !Les chaînes peuvent être utilisées pour exprimer des données complexes. Voici quelques superbes propriétés :
Facile à concaténer et à construire des caractères de chaîne complexes
Les chaînes sont faciles à déboguer (ce que vous voyez est souvent dans la chaîne)
Les chaînes sont souvent une norme commune dans de nombreuses API (champs de saisie, valeurs de stockage local, XMLHttpRequest répond lors de l'utilisation de ResponseText, etc.) et il ne peut être utilisé qu'avec des chaînes.
Par convention, les chaînes peuvent généralement être utilisées pour exprimer n'importe quelle structure de données. Ce n'est pas une bonne idée. Par exemple, en utilisant un délimiteur, on peut imiter une liste (un tableau JavaScript pourrait être plus adapté). Malheureusement, lorsqu'un délimiteur est utilisé pour les éléments d'une liste, cela perturbe la liste. un caractère d'échappement, etc. Toutes ces routines deviennent une charge de maintenance inexistante sans les bons outils à utiliser.
Il est recommandé d'utiliser des chaînes lors de l'expression de données textuelles et de données symboliques. Utilisez l'analyse de chaînes et une abréviation appropriée lors de l'expression de données complexes.
Type de symbole
Les symboles sont nouvellement définis dans ECMAScript 6e édition. Les types symboliques sont uniques et non modifiables, et peuvent également être utilisés comme valeur clé de l'objet (comme indiqué ci-dessous). Il existe également des types atomiques similaires (Atoms) dans certains langages. Vous pouvez également les considérer comme étant des types énumérés C. Voir Symbole et Symbole pour plus de détails.
Objet Objet
En Javascript, un objet peut être visualisé comme une collection de propriétés. Lorsque vous définissez un objet à l'aide de la syntaxe littérale d'objet, un ensemble de propriétés est automatiquement initialisé. (En d'autres termes, si vous définissez un var a = "Bonjour", alors a lui-même aura la méthode a.substring, l'attribut a.length et autres ; si vous définissez un objet, var a = {}, alors a aura automatiquement des propriétés et des méthodes telles que a.hasOwnProperty et a.constructor), puis ces propriétés peuvent être augmentées ou diminuées. La valeur d'une propriété peut être de n'importe quel type, y compris des objets dotés de structures de données complexes. Un attribut est identifié par une clé et sa valeur de clé peut être une chaîne ou une valeur de symbole (Symbol).
Il existe deux types d'attributs dans les objets définis par ECMAScript : les attributs de données et les attributs d'accesseur.
Attributs de données
Les attributs de données sont des paires clé-valeur, et chaque attribut de données a les caractéristiques suivantes :
Attributs d'une propriété de données
O(∩_∩ )O Haha~ Les bases sont toujours très importantes.
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!