在我的例子中,javascript中的toString()方法接受参数。在MDN上,它的不同信息在哪里? 函数createRandomId(){ var i,随机变量; var uuid=''; 对于(i=0;i

在我的例子中,javascript中的toString()方法接受参数。在MDN上,它的不同信息在哪里? 函数createRandomId(){ var i,随机变量; var uuid=''; 对于(i=0;i,javascript,Javascript,在上面的函数中,我们创建了一个随机id号。在for循环中,当我们向全局uuid变量添加id时,我们使用接受一个参数的toString()方法。但当我阅读MDN doc()时,他们提到此方法不应接受参数 因此,在我的例子中,我感到困惑,为什么这个方法接受一个参数,同时也处理这个参数?您看到的是错误的MDN页面。在代码中调用toString的值: function createRandomId() { var i, random; var uuid = ''; for (i

在上面的函数中,我们创建了一个随机id号。在for循环中,当我们向全局
uuid
变量添加id时,我们使用接受一个参数的
toString()
方法。但当我阅读MDN doc()时,他们提到此方法不应接受参数


因此,在我的例子中,我感到困惑,为什么这个方法接受一个参数,同时也处理这个参数?

您看到的是错误的MDN页面。在代码中调用
toString
的值:

function createRandomId() {
    var i, random;
    var uuid = '';
    for (i = 0; i < 32; i++) {
        random = Math.random() * 16 | 0;
        if (i === 8 || i === 12 || i === 16 || i === 20) {
            uuid += '-';
        }
        uuid += (i === 12 ? 4 : (i === 16 ? (random & 3 | 8) : random)).toString(16);
    }
    return uudi;
}
是一个数字,不是一个对象

确实接受一个论点:

语法

numObj.toString([基数])

参数

基数

可选。范围为2到36的整数,指定用于表示数值的基数

您的代码中是否有一个对象?例如

(i === 12 ? 4 : (i === 16 ? (random & 3 | 8) : random)).toString(16)

那么
toString(16)
中的16实际上是没有意义的。

将数字转换为以16为基数的字符串表示形式实际上就是该数字的十六进制版本


更多信息:

toString方法接受一个参数,即基数。比如说,如果你想把一个数字转换成二进制形式,你可以用基数2串起来<代码>变量十进制=5;十进制.toString(2);//101你不是在寻找基本的
对象.prototype.toString
,你是在用一个数字调用它:看看文档,我想在我的评论中表达什么。
uuid += { foo: random }.toString(16);