简化简单的三元表达式

时间:2019-02-25 05:50:13

标签: javascript conditional ternary-operator

我想验证对象的未定义属性,所以我使用像这样的三元

item.subitem ? item.subitem.toString() : ''

是否可以使用||&&简化此表达式?

2 个答案:

答案 0 :(得分:2)

很简单:

item.subitem && item.subitem.toString() || ''

或者仅仅是这样:

(item.subitem || '').toString()

OR

''+(item.subitem || '')

如果可以使用可选链接,那么它甚至可以更加简单:

item.subitem?.toString()

有关更多详细信息,请参见this post


作为@Thomas mentioned in comment,您还可以使用数组并将其转换为字符串:

[item.subitem].toString();

这应该清楚其工作方式:

[].toString(); // ''
[undefined].toString(); // ''
['foo'].toString(); // 'foo'
['foo', 'bar'].toString(); 'foo,bar'

答案 1 :(得分:1)

是的

(item.subitem || '').toString()