嘿,我有一个类似的东西
var zxc1 = 1846;
var zxc2 = 1649;
var zxc3 = 174;
var zxc4 = 27;
if(message.toLowerCase() == ('!asd')) { client.say(channel, `zxc1` +`(${+ zxc1.toLocaleString()})` +` | zxc2 `+`(${+ zxc2.toLocaleString()})` +` | zxc3 ` +`(${+ zxc3.toLocaleString()})` +` | zxc4 ` +`(${+ zxc4.toLocaleString()})` +` | :) `);}
打字后!asd:
结果:zxc1(NaN) | zxc2 (NaN) | zxc3 (174) | zxc4 (27) | 2
怎么了?
为什么zxc3和zxc4工作,但zxc1和zxc2没有
在${+ zxc1.toLocaleString()}
中,+
将应用于zxc1.toLocaleString()
的结果,以将其强制返回到一个数字(这似乎适得其反(。
如果你不确定某个数字是否为数字,我建议你使用数字功能,例如${Number(zxc1).toLocaleString()}
,而不是使用+
3和4之所以有效,是因为(很可能(您的区域设置添加了数千个分隔符,因此1和2不能直接返回到数字