toint32 number enteros convertir convert javascript tostring

enteros - string to number javascript



¿.ToString(16) siempre devuelve minúsculas? (2)

(12648430) .toString (16) siempre devolverá: "c0ffee". No "C0FFEE", después de verificarlo con algunos navegadores, encontré una confirmación:

El objeto Number anula el método toString () del objeto Object; no es asi
heredar Object.prototype.toString (). Para los objetos Number, el método toString () devuelve una representación de cadena del objeto en el radix especificado.

El método toString () analiza su primer argumento e intenta devolver una cadena
Representación en el radix especificado (base). Para radixes por encima de 10, las letras del alfabeto indican números mayores que 9. Por ejemplo, para números hexadecimales (base 16), se utilizan de la A a la F.

"para los números hexadecimales (base 16), se utilizan de a a f".

Consulte la referencia: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toString .

Al convertir un número decimal a una base por encima de 10 usando .toString(base) , parece que siempre obtengo una cadena en minúscula. ¿Puedo confiar en esto ? Una cadena en mayúsculas sería correcta, aunque sería necesario convertirla para mi aplicación.

Crédito adicional por hacer referencia a la parte de la especificación que lo define (lo busqué y no pude encontrarlo) y por cualquier contra-ejemplo (navegadores que devuelven mayúsculas).

Ejemplo:

(12648430).toString(16) // returns: "c0ffee". Not "C0FFEE"


Probablemente Se define en la especificación de la quinta edición, §15.7.4.2 :

Si ToInteger ( radix ) no es un número entero entre 2 y 36 inclusive, lance una excepción RangeError . Si ToInteger ( radix ) es un número entero de 2 a 36, ​​pero no 10, el resultado es una representación de String de este valor de Número utilizando el radix especificado. Las letras az se usan para los dígitos con valores 10 a 35. El algoritmo preciso depende de la implementación si la raíz no es 10, sin embargo, el algoritmo debe ser una generalización de la especificada en 9.8.1.

(mi énfasis)

Pero , la especificación de la 3ª edición (de 1999) no dijo eso, simplemente dijo:

Si radix es un número entero de 2 a 36, ​​pero no 10, el resultado es una cadena, cuya elección depende de la implementación.

... así que es posible que encuentres motores en la naturaleza que usen mayúsculas (o algo completamente distinto). Yo diría que eso es bastante improbable, por lo general no agregaron cosas así a la especificación si hubo implementaciones conocidas significativas que no tuvieron ese comportamiento. Tengo minúsculas en las versiones actuales de Chrome, Firefox y Opera, y en IE8 e incluso IE6. Así que diría que es probablemente bastante consistente.