Deutsch   English   Français   Italiano  
<675b7aad$0$433$426a34cc@news.free.fr>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!weretis.net!feeder8.news.weretis.net!news.mixmin.net!proxad.net!feeder1-2.proxad.net!cleanfeed3-a.proxad.net!nnrp2-2.free.fr!not-for-mail
From: Thomas Alexandre <none@no.invalid>
Subject: Re: Indexation des tableaux en js
Newsgroups: fr.comp.lang.javascript
References: <672bcce0$0$28508$426a74cc@news.free.fr>
	<vggpas$b9p$1@cabale.usenet-fr.net> <vggrin$29gqi$1@dont-email.me>
	<672ce7d7$0$12934$426a74cc@news.free.fr> <vgirti$2nvn9$1@dont-email.me>
	<vgkk1k$2i8l$1@cabale.usenet-fr.net> <vgko9b$35kqs$1@dont-email.me>
	<672ea1f1$0$16817$426a34cc@news.free.fr> <vgngar$3oc57$2@dont-email.me>
	<vgnium$197m$1@cabale.usenet-fr.net> <6730844c$0$424$426a74cc@news.free.fr>
	<vgq1vu$2cnv$1@cabale.usenet-fr.net> <vgq2nc$2d19$1@cabale.usenet-fr.net>
	<6759e909$0$12947$426a74cc@news.free.fr> <vjep7j$niu$1@cabale.usenet-fr.net>
	<vjflb7$114q$1@cabale.usenet-fr.net>
MIME-Version: 1.0
Organization: =?UTF-8?B?8J+Nv/Cfjbo=?=
User-Agent: Pan/0.161 (Chasiv Yar; )
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Date: 13 Dec 2024 00:07:09 GMT
Lines: 44
Message-ID: <675b7aad$0$433$426a34cc@news.free.fr>
NNTP-Posting-Date: 13 Dec 2024 01:07:09 CET
NNTP-Posting-Host: 78.196.238.42
X-Trace: 1734048429 news-4.free.fr 433 78.196.238.42:40132
X-Complaints-To: abuse@proxad.net
Bytes: 3644

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 se
vautrer parmi les vantardises niaises. Il n'y a pas de vanité
intelligente. C'est un instinct." - Céline