将任何JavaScript值转换为字符串的最短方法是什么?

时间:2009-05-26 18:05:42

标签: javascript

我有一个功能,说:

setValue: function(myValue) {
  ...
}

调用者可以传递字符串,数字,布尔值或对象。我需要确保在行下面传递的值是一个字符串。这样做最安全的方法是什么?我意识到有很多方法可以将某些类型(例如Date)转换为字符串,但我只想找到合理的开箱即用的东西。

我可以写一系列类型的陈述:

if (typeof myValue == "boolean") {}
else if () {}
...

但这可能容易出错,因为可以错过类型。

Firefox似乎支持编写如下内容:

var foo = 10; foo.toString()

但这适用于所有网络浏览器吗?我需要支持IE 6及更高版本。

简而言之,在覆盖每一种类型时进行转换的最短方法是什么?

-Erik

5 个答案:

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