Sujet : Re: Indexation des tableaux en js
De : none (at) *nospam* no.invalid (Thomas Alexandre)
Groupes : fr.comp.lang.javascriptDate : 13. Dec 2024, 01:07:09
Autres entêtes
Organisation : 🍿🍺
Message-ID : <675b7aad$0$433$426a34cc@news.free.fr>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
User-Agent : Pan/0.161 (Chasiv Yar; )
Le Thu, 12 Dec 2024 22:41:59 +0100, Olivier Miakinen a écrit :
Ce test montre bien que, quel que soit l'ordre dans lequel je mette une
entrée utilisant comme clé un entier entre 0 et 4294967294 (2**32-2),
celle-ci se place au début avec des « empty items » signalés entre
toutes ces valeurs. Et qu'au contraire tout ce qui n'est pas un entier
entre 0 et 2**32-2 se trouve relégué à la fin, dans l'ordre où je les ai
insérés dans le tableau.
La notion "d'ordre" dans lequel tu assignes une entrée en réalité importe
peu. En js, un Array est un objet "exotique". C'est-à-dire qu'il est à la
fois un Array avec des index (entiers positifs) *et* un objet avec des
props.
En vrai, tout est objet en js. Dans le cas d'un Array, les indices valides
sont traités comme tels (avec un impact sur la taille de l'Array en
particulier). Tout le reste est traité comme des props (et n'a aucune
incidence sur la taille de l'Array).
Pour des personnes qui viennent du C (ou de n'importe quel langage
fortement typé - Java, Go, Rust, Zig, etc), c'est une aberration. Mais si
l'on accepte que tout est objet en js et que les index ne sont que des
props particulières, on commence à retrouver ses petits.
Personnellement ce type de "comportement" m'a toujours heurté. Parce que
j'ai tâté du C (fortement typé) avant de tâter de l'objet (pas vraiment
typé en js - alors qu'il peut l'être en PHP par exemple).
Et, sans vouloir troller (surtout sur un forum dédié à js), je considère
(et je ne suis pas le seul - mais l'argument du nombre n'est pas un
argument valide) que js est très mauvais en termes de "typage".
Et pas seulement. Quand je vois du React ou du Typescript qui font de la
transpilation pour palier à des manques du js natif (transpilé en js natif
au final !), j'ai comme des sueurs froides.
Pourtant je l'ai pas mal pratiqué le js "vanille", totalement orienté
objet, et avec un certain plaisir même.
-- "Ce qu'il faut au fond pour obtenir une espèce de paix avec les hommes,(...) c'est leur permettre en toutes circonstances, de s'étaler, de sevautrer parmi les vantardises niaises. Il n'y a pas de vanitéintelligente. C'est un instinct." - Céline