3

如果我有几个变量,例如

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

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

4

2 回答 2

11

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

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

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

结果将是123456

于 2012-10-14T06:23:01.507 回答
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"
于 2012-10-14T06:23:50.803 回答