2010-04-13 16 views

Odpowiedz

23

Dodatkowy parametr działa tylko Number.prototype.toString określić przelicznika (liczbę całkowitą od 2 do 36 określania stacji bazowej do wykorzystania w reprezentacji wartości numerycznych):

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

MDN podaje całkiem niezłe wyjaśnienie na ten temat: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number/toString – luissquall

2

nie jest zdefiniowany jako globalnie zastosowanie argumentu toString Ma to sens tylko na Number, gdzie określa podstawę do zapisu. Można użyć np. n.toString(16), aby przekonwertować na hex.

Inne obiekty wbudowane nie używają żadnych argumentów, a JavaScript będzie cicho ignorować nieużywane argumenty, więc przekazanie 16 do jakiejkolwiek innej metody toString nie będzie miało znaczenia. Możesz oczywiście stworzyć własne metody, w których opcjonalne argumenty mogą oznaczać wszystko, co chcesz.

9

To działa tylko na obiektach liczba i ma na celu dać sposób wyświetlania numeru z pewnym Podstawa:

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" 

Należy zauważyć, że podstawa musi być liczbą całkowitą od 2 do 36 lub toString() podniesie błąd.

+0

Późny komentarz na ten temat, który miał być krótki edycja do zrobienia. Ale 'var b = n.toString (16); // binary: "100000000" 'powinno być w rzeczywistości' n.toString (2) 'ponieważ binarny jest w bazie 2, zakładam, że to była tylko kwestia kopiowania! – Rchristiani

+0

@Rchristiani Absolutnie. Edycja byłaby w porządku, ale teraz sam to zmieniłem. Dzięki za podpowiedź! – Tomalak