如何在没有sprintf的情况下避免在JavaScript中隐式int强制转换为字符串?

时间:2017-04-22 18:36:03

标签: javascript string printf coercion

今天我不得不暂停调试我的代码来调试我的调试消息。考虑:

let x = 1;
console.log('x is ' + x + ' and x-1 is ' + x-1);
//                                         ^^^
// 'NaN'

我明白为什么会发生这种情况:当我们进行减法时,x已经是一个字符串,从字符串中减去一个整数是没有意义的。 (但如果x再乘以2,结果就是直观正确的2;当你向x添加1时,你得到11,也被理解了。

问题是,有没有办法避免或解决这种行为,因为there is no sprintf() equivalent in JavaScript?在我的情况下,x是一个循环索引和一个数组索引,我花了一点时间来理解为什么我的console.log语句显示无意义。

0 个答案:

没有答案