在 JavaScript 中转换为字符串
2022-08-30 01:16:06
我找到了三种在JavaScript中强制变量的方法。
我在jQuery源代码中搜索了这三个选项,它们都在使用中。
我想知道它们之间是否有任何区别:String
value.toString()
String(value)
value + ""
它们都产生相同的输出,但是其中一个是否比其他输出更好?
我会说它有一个优势,它节省了一些角色,但这不是那么大的优势,还有什么吗?+ ""
我找到了三种在JavaScript中强制变量的方法。
我在jQuery源代码中搜索了这三个选项,它们都在使用中。
我想知道它们之间是否有任何区别:String
value.toString()
String(value)
value + ""
它们都产生相同的输出,但是其中一个是否比其他输出更好?
我会说它有一个优势,它节省了一些角色,但这不是那么大的优势,还有什么吗?+ ""
当 是 时,它们的行为确实不同。value
null
null.toString()
引发错误 - 无法调用 null 的方法“toString”
String(null)
返回 - “空”
null + ""
还返回 - “空”
如果是,就会发生非常相似的行为(参见jbabey的答案)。value
undefined
除此之外,性能差异可以忽略不计,除非您在巨大的循环中使用它们,否则不值得担心。
存在差异,但它们可能与您的问题无关。例如,toString 原型不存在于未定义的变量上,但您可以使用其他两种方法将未定义的字符串强制转换为字符串:
var foo;
var myString1 = String(foo); // "undefined" as a string
var myString2 = foo + ''; // "undefined" as a string
var myString3 = foo.toString(); // throws an exception