var w = q||问2;这个表达式是什么意思

var w = q||q2; what does this expression means?

本文关键字:表达式 意思 是什么 var      更新时间:2023-09-26

这是什么意思?

var q = [];
var q2 = ["canada","usa","mexico"];
var w = q||q2;
document.writeln(w);

变量 W 的值为 : [] 空列表。

有人可以向我解释为什么它显示这个 [] 而不是 ["加拿大"、"美国"、"墨西哥"]。

你应该阅读 MDN 的逻辑运算符。根据文档

逻辑运算符 OR ( || ( expr1 || expr2

如果可以转换为expr1,则返回 true; 否则返回 expr2 .因此,当与布尔值一起使用时,||返回 true,如果 操作数为真;如果两者都为假,则返回假。

简而言之,逻辑运算符从左到右计算。在您的情况下,由于您已将q声明为空数组([](,因此它的计算结果为 true,并立即w分配给该数组。

如果您希望q2优先,您可以简单地执行

var w = q2 || q;

因此,只有当q2的计算结果为 falsey 时,它才会将w分配为q。另一种选择是根本不声明q或将其声明为虚假内容。您可以在此处了解要false的评估结果。