字符串中的javascript null值

时间:2012-04-06 15:45:54

标签: javascript

在javascript中我有以下内容:

var inf = id + '|' + city ;

如果id或city为null,则inf为null。

如果id或city为null,是否有空白的话,是否有任何流畅的说法。

我知道在c#中你可以做到以下几点:

var inf = (id ?? "") + (city ?? "");

javascript中的任何类似方法?

7 个答案:

答案 0 :(得分:20)

怎么样:

var inf = [id, city].join('|');

编辑: 您可以在加入之前删除“空白”部分,这样,如果id和city中只有一个为null,则inf将只包含该部分,如果两者都为null,则inf为空。

var inf = _([id, city]).compact().join('|'); // underscore.js
var inf = [id, city].compact().join('|'); // sugar.js
var inf = [id, city].filter(function(str) { return str; }).join('|'); // without helpers

答案 1 :(得分:12)

总远射,但试试这个:

var inf = (id || "") + "|" + (city || "");

答案 2 :(得分:4)

var inf = (id == null ? '' : id) + '|' + (city == null ? '' : city)

答案 3 :(得分:0)

var inf = (id && city) ? (id+"|"+city) : "";

答案 4 :(得分:0)

等同于c#var inf = (id ?? "") + (city ?? "");(如果idcity可以为空)

var inf = (id || '') + (city || '');

这被称为“Short-Circuit Evaluation”。可空性在javascript中不是问题(在js中所有变量都可以为空),但必须分配idcity(但不需要像var id, city中那样的值)。< / p>

答案 5 :(得分:0)

if (id != ""){
inf = id;
if (city != ""){ inf += " | " + city ;}
}
else 
inf= city;

答案 6 :(得分:0)

function nullToStr(str) {
    return !str || 0 === str.length ? '' : str;
}

用法:

console.log(nullToStr(null);

        function nullToStr(str) {
    return !str || 0 === str.length ? '' : str;
}

console.log(`The value which was null = ${nullToStr(null)}`);
console.log(`The value which was null = ${nullToStr(undefined)}`);
console.log(`The value which was null = ${nullToStr('')}`);
console.log(`The value which was null = ${nullToStr('asdasd')}`);

我认为这会有所帮助,并且易于使用。显然,它基于我在此线程中找到的其他答案。