如果我有几个变量,例如
var t1 = "123";
var t2 = null;
var t3 = "456";
我想连接t1 + t2 + t3,这样的字符串是否有固定的输出,或者结果是否依赖于不同的Javascript引擎?
答案 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"