2010-04-13 13 views

Respuesta

23

El parámetro adicional sólo funciona para Number.prototype.toString para especificar el radix (número entero entre 2 y 36 especificando la base a utilizar para la representación de valores numéricos):

var number = 12345; 
number.toString(2) === "11000000111001" 
number.toString(3) === "121221020" 
// … 
number.toString(36) === "9ix" 
+1

MDN da una muy buena explicación sobre el tema: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number/toString – luissquall

2

No es define como un argumento globalmente aplicable a toString , solo tiene sentido en Number, donde especifica la base para escribir. Puede usar, por ejemplo. n.toString(16) para convertir a hex.

Los otros objetos incorporados no usan ningún argumento y JavaScript ignorará silenciosamente los argumentos no utilizados, por lo que pasar 16 a cualquier otro método toString hará la diferencia. Por supuesto, puede hacer sus propios métodos toString donde los argumentos opcionales pueden significar lo que quiera.

9

Esto sólo funciona en objetos Number y está destinado a darle una forma de mostrar un número con un cierto radix:

var n = 256; 
var d = n.toString(10); // decimal: "256" 
var o = n.toString(8); // octal: "400" 
var d = n.toString(16); // hex:  "100" 
var b = n.toString(2); // binary: "100000000" 
var w = n.toString(20); // base 20: "cg" 

Tenga en cuenta que la raíz debe ser un número entero entre 2 y 36 o toString() elevará un error.

+0

Último comentario sobre esto, y fue a corto de una edición para hacer. Pero 'var b = n.toString (16); // binary: "100000000" 'en realidad debería ser' n.toString (2) 'ya que el binario está en la base 2, ¡supongo que fue solo una cosa de copiar y pegar! – Rchristiani

+0

@Rchristiani Absolutamente. Una edición habría estado perfectamente en orden, pero ahora la he cambiado yo mismo. ¡Gracias por la pista! – Tomalak

Cuestiones relacionadas