在Javascript中连接未定义的变量

时间:2012-10-14 06:13:22

标签: javascript concatenation

如果我有几个变量,例如

var t1 = "123";
var t2 = null;
var t3 = "456";

我想连接t1 + t2 + t3,这样的字符串是否有固定的输出,或者结果是否依赖于不同的Javascript引擎?

2 个答案:

答案 0 :(得分:10)

在所有浏览器/引擎中都是一样的。你可以这样做(假设t1,t2,t3总是字符串)

var t1 = "123";
var t2 = null;
var t3 = "456";

var result = (t1 || "") + (t2 || "") + (t3 || ""); // Logical OR `||` to avoid null/undefined.

结果将为123456

答案 1 :(得分:2)

无论浏览器如何,它都会返回相同的输出。如果有的话,它只有null部分可能不同(不太可能)

在这种情况下,它将是"123null456"

要抵消有关不同浏览器转换为字符串的null值的任何不一致,您可以使用:

function concatAll() {
   var s = '';
   for(var x in arguments) {
       s += arguments[x] == null ? 'null' : arguments[x];
   }
   return s;
}

var t1 = "123";
var t2 = null;
var t3 = "456";

concatAll(t1, t2, t3); // will return "123null456"