Warum gibt toString () eine Zahl in Chrome 49 eine längere Zeichenfolge zurück?

9

Ich habe gerade festgestellt, dass Math.random().toString(36) in Chrome 49 eine längere Zeichenfolge zurückgibt als Knoten 5.9 oder Safari 9.1.

Safari

%Vor%

Knoten 5.9.1

%Vor%

Chrome 49

%Vor%

Hinweis: Hier geht es nicht um Math.random . Jede Zahl, die in eine Zeichenfolge mit einer anderen Basis als 10 konvertiert wird, gibt eine viel größere Zeichenfolge in Chrome 49 als Safari zurück:

Safari

%Vor%

Chrome

%Vor%

Was ist los?!

    
Mohsen 29.03.2016, 01:00
quelle

1 Antwort

1

Ich bin überzeugt, nachdem wir das ein wenig getestet haben, dass es ein Bug in Chrom für bestimmte Basen ist, scheinen die meisten in Ordnung zu sein, während ungewöhnliche Basen manchmal einfach lächerlich lang sind. Hier ist ein kurzer JSBin mit etwas Protokollierung verschiedener Länge:

JSBin - (versuche es in verschiedenen Browsern)

%Vor%

Weitere Informationen zu ECMA 5.1 finden Sie hier:

  

.... Der genaue Algorithmus ist implementierungsabhängig, wenn das Radix nicht 10 ist, der Algorithmus sollte jedoch eine Generalisierung des in 9.8.1 spezifizierten Algorithmus sein.

ECMA 5.1 Spec - Link zum relevanten Teil

Ich weiß wirklich nicht, was sonst noch hier vor sich geht. Aber das sieht mehr und mehr nach einem algorithmischen Problem mit der spezifischen Implementierung von Chrome aus.

* verzeihe meine Variablen, es ist nur für die Anmeldung in JSBin.

    
JordanHendrix 31.03.2016 23:49
quelle

Tags und Links