在JavaScript中将对象转换为字符串的区别

时间:2013-05-16 12:51:45

标签: javascript regex

我想在JavaScript中将对象转换为字符串,我对使用哪种方法感到困惑。我在下面有一个简单的例子。

第一种方法

/\d+/g.toString()

第二种方法

/\d+/g + ''

这两者有区别吗?

3 个答案:

答案 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()