我想在JavaScript中将对象转换为字符串,我对使用哪种方法感到困惑。我在下面有一个简单的例子。
/\d+/g.toString()
/\d+/g + ''
这两者有区别吗?
答案 0 :(得分:3)
第二种方法另外适用于null/undefined
,并不是那么不清楚:
a.toString() //Fails with null/undefined
a + "" //Works with anything
您可能还会发现+a
等其他习惯用法有用,这是一个更加严格的parseFloat
。
答案 1 :(得分:2)
不,没有区别,当一个对象必须转换为字符串时,会调用toString
函数。
更准确地说,应用带有提示“字符串”的toPrimitive
转换,并在the ECMAScript specification中为对象定义。
请注意,当您传递null或undefined时(请参阅the spec),只有添加方案才有效。随着冗长的冗长,解释了为什么在JavaScript中很少显式调用toString
。隐式转换是语言练习的重要组成部分,因此使用此方法是完全正常的,就像您经常在字符串前加+
一样将其转换为数字(即+'33'
)。
答案 2 :(得分:0)
两者都是一样的。第二个也会调用toString()
。