Deutsch English Français Italiano |
<vgq1vu$2cnv$1@cabale.usenet-fr.net> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!3.eu.feeder.erje.net!2.eu.feeder.erje.net!feeder.erje.net!fdn.fr!usenet-fr.net!.POSTED!not-for-mail From: Olivier Miakinen <om+news@miakinen.net> Newsgroups: fr.comp.lang.javascript Subject: Re: Indexation des tableaux en js Date: Sun, 10 Nov 2024 11:30:22 +0100 Organization: There's no cabale Lines: 52 Message-ID: <vgq1vu$2cnv$1@cabale.usenet-fr.net> 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> NNTP-Posting-Host: 200.89.28.93.rev.sfr.net Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Trace: cabale.usenet-fr.net 1731234622 78591 93.28.89.200 (10 Nov 2024 10:30:22 GMT) X-Complaints-To: abuse@usenet-fr.net NNTP-Posting-Date: Sun, 10 Nov 2024 10:30:22 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 SeaMonkey/2.49.4 In-Reply-To: <6730844c$0$424$426a74cc@news.free.fr> Bytes: 3005 Le 10/11/2024 11:00, Thomas Alexandre a écrit : > Le Sat, 9 Nov 2024 13:01:25 +0100, Olivier Miakinen a écrit : > >> Je reviens à JavaScript. Les indices de tableaux n'y sont *pas* des >> nombres réels ! Même si les nombres entiers sont codés selon la norme >> IEEE 754 qui peut *aussi* coder des nombres non entiers, seuls les >> entiers sont utilisés comme indices de tableaux. Je crois même (mais >> c'est à vérifier) que seuls les entiers positifs entre 0 et 2^32−1 sont >> autorisés comme index. Donc pas 3,14, ni −2, ni 2^42. J'avais déjà remarqué dans une de mes réponses sur fr.sci.maths que les nombres non entiers, ou inférieurs à 0, ou supérieurs à 2^32−2, étaient remplacés par la chaine de caractères qui les représente. > Alors si et c'est même bien pire que ça : > > ```js > let a = [] > a[Math.PI] = 3.14 > a[-Math.PI] = -3.14 > a["π"] = 3.14 > a[true] = 1 > a[null] = 0 > a[false] = -1 > a[NaN] = 42 > console.log(a) > ``` Résultat : [ '3.141592653589793': 3.14, '-3.141592653589793': -3.14, 'π': 3.14, true: 1, null: 0, false: -1, NaN: 42 ] Cela confirme ce que je disais pour les nombres. Mais je vois que null, true, false et NaN ne sont pas transformés. C'est encore plus drôle avec +∞ et −∞ car seul le second est transformé en chaine de caractères. a[4294967294] = 4294967294 a[4294967295] = 4294967295 a[true] = 1 a[null] = 0 a[false] = -1 a[NaN] = 42 a[1/0] = 1/0 a[-1/0] = -1/0 Résultat : [ <4294967294 empty items>, 4294967294, '4294967295': 4294967295, true: 1, null: 0, false: -1, NaN: 42, Infinity: Infinity, '-Infinity': -Infinity ] -- Olivier Miakinen