我想从一个对象验证未定义的属性,所以我使用这样的三元组
item.subitem ? item.subitem.toString() : ''
有没有办法使用||
或&&
简化这个表达式?
这很简单:
item.subitem && item.subitem.toString() || ''
或者只是喜欢:
(item.subitem || '').toString()
要么,
''+(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'
是的你可以
(item.subitem || '').toString()