我有一个功能,说:
setValue: function(myValue) {
...
}
调用者可以传递字符串,数字,布尔值或对象。我需要确保在行下面传递的值是一个字符串。这样做最安全的方法是什么?我意识到有很多方法可以将某些类型(例如Date)转换为字符串,但我只想找到合理的开箱即用的东西。
我可以写一系列类型的陈述:
if (typeof myValue == "boolean") {}
else if () {}
...
但这可能容易出错,因为可以错过类型。
Firefox似乎支持编写如下内容:
var foo = 10; foo.toString()
但这适用于所有网络浏览器吗?我需要支持IE 6及更高版本。
简而言之,在覆盖每一种类型时进行转换的最短方法是什么?
-Erik
答案 0 :(得分:9)
var stringValue = String(foo);
甚至更短
var stringValue = "" + foo;
答案 1 :(得分:3)
value += '';
答案 2 :(得分:2)
如果您使用myValue
作为字符串,Javascript会将其简单地转换为字符串。如果您需要提示您正在处理字符串的Javascript引擎(例如,使用+运算符),您可以安全地在IE6及更高版本中使用toString。
答案 3 :(得分:0)
强制字符串上下文怎么样,例如“” +富?
答案 4 :(得分:0)
另一种方式是:
var stringValue = (value).toString();