const selectedOption = { value: null , ...other }
if (selectedOption && selectedOption.value ) {
console.log('it is?')
}
我认为不能出现控制台
但这是为什么呢?
对不起,我迷失了自己的错误
答案 0 :(得分:4)
是的,null
是一个伪造的值。伪造的值是null
,undefined
,0
,""
,NaN
,当然还有false
。所有其他值都是真实的。
但是,正如Mark指出in a comment所指出的那样,不一定不一定意味着您不会进入if
,因为selectedOption.value
可能不是null
(例如,如果other
具有非null
value
):
const other = {value: 42};
const selectedOption = { value: null , ...other }
if (selectedOption && selectedOption.value ) {
console.log('it is?')
}
selectedOption.value
肯定会null
,如果点差的顺序不同:
const other = {value: 42};
const selectedOption = { ...other, value: null }
if (selectedOption && selectedOption.value ) {
console.log('it is?');
} else {
console.log("definitely false");
}
对象初始化程序按源代码顺序进行处理,因此,较晚的属性将取代具有相同名称的较早的属性。