为什么下面的代码有效?为什么将变量中的对象options
分配给i_identify_as_boolean
而不是布尔值?
在这种情况下,我期望布尔值。如果我愿意写,typeof foo == 'object' ? foo : null
但我不是这样的话,我希望它能奏效。这样,我期望布尔值。
那为什么行得通呢?我试着阅读的typeof文档和这个,但没有说明此行为。
let options = {hello: 'world'};
let i_identify_as_boolean = typeof options == 'object' && options;
let i_identify_as_object = typeof options == 'object' ? options : null;
console.log(i_identify_as_object.hello);
console.log(i_identify_as_boolean.hello);
如果所有条件都是真实的,它将始终将其设置为最后一个真实变量。
let x = true && 5
x returns 5;
如果要将变量用作布尔值,则可以对其进行两次否定操作,以便它返回布尔值 !!x
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句