所以今天遇到了这个场景。我有一个整数和一个字符串需要比较。为了比较两者,我要么必须 toString() 整数,要么将字符串解析为 int。
这是我的问题,我应该选择哪一个,这两个在性能上有什么不同吗? (即使是最小的)是否有经验法则?
这是一个代码示例:
var intI = 1;
var stringS = '1';
if (intI.toString() == stringS)
console.log('are equal');
//Or
if (intI == parseInt(stringS))
console.log('are equal');
如果我能将 Integer 声明为我知道的字符串(因为它不用于计算),那将是最好的。但它在网站上无处不在。
最佳答案
这取决于您想要的语义而不是性能。字符串“001”是否应该等于数值1
?如果答案是"is",则应将值转换为数字。如果不是,那么您应该将其作为字符串进行比较。
除非您有一个正在执行数百万次此类操作的应用程序,否则不要担心这些琐碎事情的性能。
另请注意,parseInt()
不关心数字字符串末尾是否有尾随垃圾。也就是
parseInt("123skidoo", 10) === 123
为真
。
关于javascript - toString 或 to parseInt javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13934027/