简化简单的三元表达式

Simplify simple ternary expression

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

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

有什么方法可以使用 ||&& 来简化这个表达式吗?

很简单:

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

或简单地喜欢:

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

或者,

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

如果可以使用可选链,那就更简单了:

item.subitem?.toString()

有关详细信息,请参阅


一样,也可以使用数组转成字符串:

[item.subitem].toString();

这应该清楚它是如何工作的:

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

是的,你可以

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