javascript - typeof options == 'object' && options,为什么会返回对象值?

标签 javascript

为什么下面的代码有效? 为什么变量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/

相关文章:

javascript - jquery .on() 未触发

传递给方法的 Javascript 对象是一个字符串

javascript - 从 Laravel 对象中获取对象

javascript - 如何在 Angular2 中包含 Youtube Iframe API?

javascript - JQuery 和 Javascript 在我的项目中不起作用,但在网络上可以

javascript - 为什么 "use strict"会破坏命名空间内的函数分配到全局作用域?

javascript - 用 jquery/javascript 替换数字和符号

javascript - event.target.id 仅适用于 Chrome

javascript - document.createElement : el. 大小 = "2%"不起作用

Firefox 3.6.13 中的 Javascript 参数