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 に答える