如果我有幾個變量,例如在Javascript中連接未定義的變量
var t1 = "123";
var t2 = null;
var t3 = "456";
我想連接T1 + T2 + T3,是有一個固定的輸出,這樣的字符串或者是結果取決於不同的JavaScript引擎?
如果我有幾個變量,例如在Javascript中連接未定義的變量
var t1 = "123";
var t2 = null;
var t3 = "456";
我想連接T1 + T2 + T3,是有一個固定的輸出,這樣的字符串或者是結果取決於不同的JavaScript引擎?
它會返回相同的輸出,而不管瀏覽器。如果有,它的唯一的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"
它在所有瀏覽器/引擎中都是一樣的。你可以做這樣的(假設T1始終,T2,T3將字符串)
var t1 = "123";
var t2 = null;
var t3 = "456";
var result = (t1 || "") + (t2 || "") + (t3 || ""); // Logical OR `||` to avoid null/undefined.
結果將是123456
請注意,如果您使用文字數字而不是字符串,則會跳過「0」。但是,如果你只用'+'連接數字,你就會遇到更大的問題。 – ColBeseder
你是什麼意思_is有這樣一個string_的固定輸出?你想做什麼? – elclanrs
@elclanrs:例如,當我使用Chrome JS調試器時,我發現輸出實際上是「123undefined456」。 – derekhh