34

我只是想知道将数字作为参数附加到toString()方法意味着什么

例如 obj.toString(10);

我用谷歌搜索,我以前从未见过参数。

4

3 回答 3

36

附加参数仅用于Number.prototype.toString指定基数(2 到 36 之间的整数,指定用于表示数值的基数):

var number = 12345;
number.toString(2) === "11000000111001"
number.toString(3) === "121221020"
// …
number.toString(36) === "9ix"
于 2010-04-13T16:38:18.187 回答
13

这仅适用于 Number 对象,旨在为您提供一种显示具有特定基数的数字的方法:

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

请注意,基数必须是 2 到 36 之间的整数,否则toString()会引发错误。

于 2010-04-13T16:43:40.980 回答
4

它没有被定义为全局适用的参数toString,它只在 上有意义Number,它指定要写入的基数。您可以使用例如。n.toString(16)转换为十六进制。

其他内置对象不使用任何参数,JavaScript 将默默地忽略未使用的参数,因此传递16给任何其他toString方法都没有区别。您当然可以制作自己的toString方法,其中可选参数可以表示您喜欢的任何内容。

于 2010-04-13T16:39:27.633 回答