Why doesn't obj.list & & obj.list.length first determine whether obj.list has a value and then report that length is not defined?

Why doesn"t RT:obj.list & & obj.list.length first determine whether obj.list has a value and then report that length is undefined?
so I always deal with it this way (I can probably understand why, but I don"t know the professional explanation)

{
    orderMsgJson0.list && orderMsgJson0.list.length ? [
        orderMsgJson0.list.map(item => (
            <p dangerouslySetInnerHTML={{ __html: formatNullStr(this.strReplace(item.senderMsg, `scm.html?tab=saleOrderDetail&orderId=${item.orderId}`)) }}>

)), <p className="person-more"><a href="-sharp">>></a>

] :

}
Mar.12,2021

1. If you do not judge whether list exists, take list. If list does not exist, an exception will be reported, causing the following code to fail to execute
2.map

.
Menu