Maison interface Web js tutoriel Quelques comportements étranges des astuces JavaScript arrays_javascript

Quelques comportements étranges des astuces JavaScript arrays_javascript

May 16, 2016 pm 03:18 PM
js数组

L'importance des tableaux dans les langages de programmation va de soi. Les tableaux en JavaScript sont également l'un des objets les plus couramment utilisés. Les tableaux sont des collections ordonnées de valeurs. En raison de la faiblesse des types, les tableaux en JavaScript sont très flexibles et puissants. Contrairement aux tableaux dans les langages de haut niveau fortement typés tels que Java, qui ne peuvent stocker que des éléments du même type ou ses sous-types, JavaScript peut stocker plusieurs types d'éléments dans le même tableau, et la longueur peut également être ajustée dynamiquement. à mesure que les données augmentent ou réduisez les modifications automatiques de la longueur du tableau.

Aujourd'hui, j'ai examiné les tableaux JavaScript, puis j'ai résumé certains de ses comportements étranges. Je les partagerai avec vous ici. S'il y a des erreurs, veuillez les signaler !

Étrange 1 : La fonction constructeur Array() peut être appelée sans utiliser le mot-clé new :

Le constructeur Array() utilise les paramètres qui lui sont passés comme éléments du tableau pour créer un tableau. Généralement, on l'appelle ainsi :

var a = new Array(1, 2, "bom!");
a.length; //3
console.log(a); //[1, 2, "bom!"] 
Copier après la connexion

Cependant, il est également possible d'omettre du nouveau, comme suit :

var a = Array(1, 2, "bom!");
a.length; //3
console.log(a); //[1, 2, "bom!"] 
Copier après la connexion

Bien que je ne sache pas quel est son mécanisme de mise en œuvre interne, je suppose que sa fonction constructeur peut être définie comme suit :

function Array(args) {
//如果,this不是Array的实例的话,
//说明不是通过new调用的,则在这里再重新调用
if( !this instanceof Array) {
return new Array(args);
}//后面是正常调用时的实现代码<br />//...<br />} 
Copier après la connexion

Étrange 2 : Lorsqu'un seul paramètre est passé au constructeur, le comportement est imprévisible

Si un seul paramètre est passé, et que ce paramètre est un entier, un tableau sera obtenu, et la longueur est égale à ce paramètre

var a = new Array(12);
console.log(a.length); //12
console.log(a); //[] 
Copier après la connexion

Si vous ne transmettez qu'un nombre à virgule flottante, une erreur sera signalée :

var a = new Array(1.1); //Uncaught RangeError: Invalid array length(…) 
Copier après la connexion

Passer une chaîne fonctionnera correctement, avec la chaîne comme premier élément du tableau :

var a = new Array("1.1");
console.log(a.length); //
console.log(a); //["1.1"] 
Copier après la connexion

Mais afin d'éviter toute ambiguïté, je suggère qu'il est préférable de créer le tableau directement sous forme de littéraux :

var a = []; //空数组
var a = [1, 1, "bom"]; //三个元素
var a = [12]; //一个元素,并且元素是12 
Copier après la connexion

Étrange 3 : L'attribut length du tableau peut être modifié (inscriptible)

Comme suit, nous avons directement changé la longueur de 2 à 100, et la modification a réussi ! ! !

var a = [1, 2, 3, 4];
console.log(a.length); //4
a.length = 100; 
console.log(a.length); //100 
Copier après la connexion

Bien que la longueur soit égale à 100, les éléments a[4]-a[99] n'existent pas, et si vous demandez leurs valeurs, par exemple, faites-le dans une boucle de 0 à a.length, alors ils deviendront indéfinis .

Regarder ensuite :

var a = [1, 2, 3, 4];
a.length = 100;
console.log(a[10]); //undefined
console.log(99 in a); //false 
Copier après la connexion

Un peu similaire à l'exemple ci-dessous :

var a = [1, 2, 3, 4];
a[99] = undefined;
console.log(a.length); //100 
Copier après la connexion

La différence est que a[99] existe ici parce que nous l'avons créé, même s'il a une valeur indéfinie. Mais tous les éléments de a[4] à a[98] n'existent pas, comme suit :

var a = [1, 2, 3, 4];
a[99] = undefined;
console.log(99 in a); //true;
console.log(98 in a); //false
console.log(a.length); //100 
Copier après la connexion

Ce qui précède a partagé avec vous quelques comportements étranges des tableaux JavaScript. Veuillez me pardonner si l'article n'est pas bien écrit, merci !

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

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.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

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)

Comment supprimer des éléments du tableau es6 Comment supprimer des éléments du tableau es6 Jan 11, 2023 pm 03:51 PM

Méthode : 1. Utilisez shift() pour supprimer le premier élément, la syntaxe est "array.shift()" ; 2. Utilisez pop() pour supprimer le dernier élément, la syntaxe est "array.pop()" ; Utilisez splice() pour supprimer des éléments à n'importe quelle position, la syntaxe est "array.splice(position, number)" 4. Utilisez length pour supprimer les N derniers éléments, la syntaxe est "array.length=original array length-N" ; ; 5. Attribuez directement le tableau vide "[ ]" pour effacer l'élément ; 6. Utilisez delete pour supprimer un élément à l'indice spécifié.

Comment convertir une chaîne en tableau en javascript Comment convertir une chaîne en tableau en javascript Nov 23, 2022 pm 07:28 PM

3 méthodes de conversion : 1. Utilisez split() pour diviser une chaîne donnée en un tableau de chaînes, la syntaxe est "str.split (séparateur, longueur maximale du tableau)" 2. Utilisez l'opérateur d'expansion "...", itérable ; objet chaîne, convertissez-le en tableau de caractères, la syntaxe "[...str]"; 3. Utilisez Array.from() pour convertir la chaîne en tableau, la syntaxe "Array.from(str)".

Comment obtenir la longueur d'un tableau en js Comment obtenir la longueur d'un tableau en js Jun 20, 2023 pm 05:33 PM

Obtenir la longueur d'un tableau en JS est très simple. Chaque tableau a une propriété de longueur, qui renvoie la longueur maximale du tableau, c'est-à-dire que sa valeur est égale à la valeur d'indice maximale plus 1. Puisque les indices numériques doivent être inférieurs à 2^32-1, la valeur maximale de l'attribut de longueur est égale à 2^32-1. Le code suivant définit un tableau vide, puis attribue une valeur à l'élément avec l'index égal à 100, puis la propriété length renvoie 101. Par conséquent, l’attribut length ne peut pas refléter le nombre réel d’éléments du tableau.

Le tableau js peut-il être converti en tableau php ? Le tableau js peut-il être converti en tableau php ? Jun 02, 2023 am 10:06 AM

Le tableau js peut être converti en tableau php. La méthode d'opération est la suivante : 1. Créez un exemple de fichier php ; 2. Utilisez la syntaxe "JSON.stringify()" pour convertir le tableau js en une chaîne au format JSON ; Utilisez la syntaxe "json_decode()" "Convertissez la chaîne au format JSON en tableau PHP. Le paramètre true est ajouté ici, ce qui signifie que la chaîne au format JSON est convertie en tableau associatif PHP.

Il existe plusieurs façons de supprimer un élément d'un tableau js Il existe plusieurs façons de supprimer un élément d'un tableau js Aug 02, 2023 am 10:09 AM

Il existe 4 façons de supprimer un élément d'un tableau js, à savoir : 1. Utilisez splice ; 2. Utilisez filter 3. Utilisez la méthode pop et shift ;

Tri des tableaux JS : comment utiliser la méthode sort() Tri des tableaux JS : comment utiliser la méthode sort() Dec 27, 2023 pm 03:40 PM

La méthode Array.prototype.sort() de JavaScript est utilisée pour trier les éléments d'un tableau. Cette méthode trie sur place, c'est-à-dire qu'elle modifie le tableau d'origine plutôt que de renvoyer un nouveau tableau trié. Par défaut, la méthode sort() trie les chaînes en fonction de leurs valeurs de points de code Unicode. Cela signifie qu'il est principalement utilisé pour trier des chaînes et des nombres, plutôt que pour trier des objets ou d'autres types de données complexes.

Comment trouver la longueur et la somme des éléments d'un tableau en JavaScript Comment trouver la longueur et la somme des éléments d'un tableau en JavaScript Sep 20, 2022 pm 02:11 PM

En JavaScript, vous pouvez utiliser l'attribut length pour obtenir la longueur du tableau, la syntaxe est "array object.length" ; vous pouvez utiliser la fonction réduire() ou réduireRight() pour trouver la somme des éléments, la syntaxe est " arr.reduce(function f(pre,curr){ return pre+cur})" ou "arr.reduceRight(function f(pre,curr){return pre+cur})".

Comment convertir un tableau js en tableau php Comment convertir un tableau js en tableau php Mar 22, 2023 am 11:24 AM

Dans le développement Web, étant donné que JavaScript (JS) et PHP sont les deux langages de programmation les plus couramment utilisés, les tableaux sont inévitables dans le processus de développement. En réponse à cette situation, nous devons souvent convertir des tableaux JS en tableaux PHP. Il existe de nombreuses façons de réaliser cette fonction, et elles seront présentées une par une ci-dessous.

See all articles