在JavaScript中将ANY类型变量转换为String的最快和最安全的方法是什么?

时间:2009-05-15 16:56:20

标签: javascript

有关函数的任何想法将接收一个参数并通过JavaScript中的参数的字符串表示形式返回吗?

如果给定的对象实现了.toString(),那么该函数应该使用它。否则,该函数可以依赖JavaScript实现提供的内容。

所以我想出来就是这样。

var convert = function (arg) {
  return (new String(arg)).valueOf();
}

7 个答案:

答案 0 :(得分:16)

value = value+"";

答案 1 :(得分:15)

我不确定你是否需要一个功能,但这将是最短的方式:

function( arg ) {
    return arg + '';
}

否则这是最短的方式:

arg += '';

答案 2 :(得分:9)

String(null)返回 - " null"

String(undefined)返回 - "未定义"

String(10)返回 - " 10"

String(1.3)返回 - " 1.3"

String(true)返回 - " true"

我认为这是一种更加优雅的方式。

答案 3 :(得分:5)

JavaScript中的所有数据类型都会继承 toString 方法:

('hello').toString();   // "hello"
(123).toString();       // "123"
([1,2,3]).toString();   // "1,2,3"
({a:1,b:2}).toString(); // "[object Object]"
(true).toString();      // "true"

答案 4 :(得分:2)

如果定位到ES6或更高版本,则可以使用template literal

function (arg) {
    return `${arg}`;
}

答案 5 :(得分:0)

关于传递的JSON对象,其他答案不完整。所以我做了这个,它适用于所有人:

var getString = (o) => {
    if (o) {
        if (typeof o == 'string') {
            return o;
        } else {
            return JSON.stringify(o);
        }
    } else {
        return null;
    }
}

var getString = function(o) {
    if (o) {
        if (typeof o == 'string') {
            return o;
        } else {
            return JSON.stringify(o);
        }
    } else {
        return null;
    }
}

答案 6 :(得分:0)

JSON.stringify(value)

适用于空值、未定义、基元、数组和对象——基本上所有的东西。