今天我不得不暂停调试我的代码来调试我的调试消息。考虑:
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语句显示无意义。