我发现在JavaScript中,有三种方法可以将一个变量转换为`String'。
我在jQuery的源代码中搜索了这三个选项,**它们都在使用。
我想知道它们之间是否有什么区别。
value.toString()
String(value)
value + ""
[DEMO][1]
它们都产生相同的输出,但其中一个是否比其他的好?
我想说+ ""
有一个优势,它可以节省一些字符,但这并不是那么大的优势,还有别的吗?
当 "value "为 "null "时,它们的行为确实不同。
null.toString()
抛出一个错误 - 不能调用null的'toString'方法。String(null)
返回 - "null".null + ""
也会返回 - "null"。如果value
是undefined
,也会发生非常类似的行为(见jbabey'的回答)。
除此之外,还有一个可以忽略不计的性能差异,除非你在巨大的循环中使用它们,否则不值得担心。
根据这个JSPerf测试,它们的速度不同。但除非你要大量使用它们,否则它们中的任何一个都应该表现良好。
为了完整起见。正如asawyer已经提到的,你也可以使用.toString()
方法。