Sujet : Re: Indexation des tableaux en js
De : om+news (at) *nospam* miakinen.net (Olivier Miakinen)
Groupes : fr.comp.lang.javascriptDate : 10. Nov 2024, 11:42:52
Autres entêtes
Organisation : There's no cabale
Message-ID : <vgq2nc$2d19$1@cabale.usenet-fr.net>
References : 1 2 3 4 5 6 7 8 9 10 11 12
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 SeaMonkey/2.49.4
Le 10/11/2024 11:30, j'écrivais :
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 ]
Bon, je me suis laissé avoir par l'affichage sur <
https://runjs.app/play>.
En réalité, tout index, qu'il soit fourni sous forme de nombre ou sous toute
autre forme, par exemple une chaine de caractères :
− est transformé en nombre s'il peut représenter un nombre entre 0 et 2^32-2 ;
− est transformé en chaine de caractères dans tous les autres cas.
La preuve :
a[0] = 0
a['0'] = '0'
a[4294967294] = 4294967294
a['4294967294'] = '4294967294'
a[true] = 1
a['true'] = 'true'
a[null] = 0
a['null'] = 'null'
a[false] = -1
a['false'] = 'false'
a[NaN] = 42
a['NaN'] = 'NaN'
a[1/0] = 1/0
a['Infinity'] = '+∞'
a[-1/0] = -1/0
a['-Infinity'] = '−∞'
Résultat :
[ '0', <4294967293 empty items>, '4294967294', \ nombres entre 0 et 4294967294
true: 'true', null: 'null', false: 'false', NaN: 'NaN', \ autres
Infinity: '+∞', '-Infinity': '−∞' ] \ autres
-- Olivier Miakinen