为什么 String.fromCharCode() 不适用于变量作为参数?

Why String.fromCharCode() does not work with variable as parameter?

我注意到 String.fromCharCode() 不能使用变量作为参数。

下面是一些示例代码:

var x = atob('ODAsNjUsODMsODMsODcsNzksODIsNjgsOTUsNDgsNDk=');
console.log('\''+x.replace(new RegExp(',', 'g'), '\',\'')+'\'');
console.log(String.fromCharCode('\'' + x.replace(new RegExp(',', 'g'), '\',\'') + '\''));

现在这将计算为

'80','65','83','83','87','79','82','68','95','48','49'

这是 String.fromCharCode()
的正确参数链 因为这有效:

console.log(String.fromCharCode('80','65','83','83','87','79','82','68','95','48','49'));

为什么它不接受变量作为参数?

我是不是做错了什么?

在:

var x = atob('ODAsNjUsODMsODMsODcsNzksODIsNjgsOTUsNDgsNDk=');
console.log(String.fromCharCode('\'' + x.replace(new RegExp(',', 'g'), '\',\'') + '\''));

'\''+x.replace(new RegExp(',', 'g'), '\',\'')+'\'' 产生一个字符串。它只是一个文本 '80','65','83','83','87','79','82','68','95','48','49'。如果您将此字符串传递给 String.fromCharCode... 绝对不是您想要的。 JavaScript 应该如何将其转换为 one 数字?

String.fromCharCode('80','65','83','83','87','79','82','68','95','48','49')

在这里你传递了多个参数。多个字符串。而且它们中的每一个都可以很容易地转换成一个数字。

您可以做的是简单地在 , 处拆分字符串,然后展开结果数组:(ECMAScript 6)

String.fromCharCode(...x.split(','));

您可以只传递一个数组:

String.fromCharCode.apply(null, ['80','65','83','83','87','79','82','68','95','48','49'])

这里有一个类似的..同样的问题:

Can I pass an array into fromCharCode