gpt4 book ai didi

javascript - 设置Javascript变量,var win = window.dialogArguments || 的作用是什么开场白||父||顶部;做?

转载 作者:行者123 更新时间:2023-11-28 02:49:31 25 4
gpt4 key购买 nike

我在 Javascript 文件中遇到了这个结构,但我不确定它的作用。

var win = window.dialogArguments || opener || parent || top;

我知道 window.dialogArguments 从父窗口返回可选参数,但我不明白 || 运算符正在做什么。

这是否设置了某种层次结构,如果 .dialogArguments 返回 NULL,它将分配 window.opener 的值(依此类推)?

最佳答案

|| operator is the logical OR operator 。但其求值不会返回 bool 值 (true‍/‍false),而是返回与 converted to boolean 时的 true 相同的第一个操作数的值 (即 Boolean(op) === true) 或第二个操作数的值。

所以表达式window.dialogArguments ||开场白||父|| top,相当于 window.dialogArguments || (opener || (parent || top)),将产生:

  • window.dialogArguments 的值(如果转换为 bool 值等于 true),或者
  • opener 的值(如果转换为 bool 值后等于true),或者
  • parent 的值(如果其值转换为 bool 值等于true),或者
  • 否则为 top 的值。

所以它实际上相当于:

var win;
if (window.dialogArguments) {
win = window.dialogArguments;
} else if (opener) {
win = opener;
} else if (parent) {
win = parent;
} else {
win = top;
}

请注意,如果变量不存在,您可能会收到ReferenceError。如果您位于全局范围 (window) 中,最好使用 window.foo 而不是仅使用 foo 来避免此类 ReferenceError‍s。

顺便说一句:其他语言也有类似的操作和功能,几乎相同,例如SQL 的 coalesce 函数返回第一个非 NULL 值。

关于javascript - 设置Javascript变量,var win = window.dialogArguments || 的作用是什么开场白||父||顶部;做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4087543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com