为什么下面的代码有效?
为什么变量options
中的对象被分配到i_identify_as_boolean
而不是 bool 值?
在这种情况下我希望得到一个 bool 值。如果我写 typeof foo == 'object' ? foo : null
我希望它能起作用但不是以这种方式。通过这种方式,我期望得到一个 bool 值。
那么它为什么有效呢?我尝试阅读 typeof文档和 this但没有任何证据可以说明这种行为。
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;
如果你想使用变量作为 bool 值,你可以双重否定它,以便它返回一个 bool 值
!!x
关于javascript - typeof options == 'object' && options,为什么会返回对象值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60339794/