如果我更改输入顺序,为什么控制台会给我不同的输出,如下所示

why console gives me different output if i changed the order of input as below

本文关键字:输出 输入 顺序 为什么 如果 控制台      更新时间:2023-09-26

嗨,我现在正在介绍JavaScript概念。 今天我遇到了一个 以下问题:我已经尝试了以下示例 在浏览器控制台或Firebug中,当我输入1 || true它给出 输出为 1,当我输入 true || 1 时,它会给出输出true

为什么? 请详细说明。 是否是由于类型转换? >我仍然需要满意的答案。

您正在检查您的 or 比较的第一个参数是否为真。在javascript中,一旦参数为真,OR比较就会返回true。

1truetrue也是,所以它会选择在两种情况下传递的第一个参数。

您看到的内容也用作短路,因此您可以检查变量是否有值,如果没有,则在||之后取"默认值"。

例如,请考虑以下事项:

var a;
console.log(a || 'notSet');

将记录notSet,因为a未定义并且选择了"默认值"。

true || (anything) 

短路评估值为 true,因此将记录 true。

另请参阅 mdn 关于逻辑运算符的文档