gpt4 book ai didi

Javascript:事件和函数的含义用OR运算符分隔

转载 作者:行者123 更新时间:2023-11-28 13:36:53 25 4
gpt4 key购买 nike

我在 JavaScript 中发现了一段代码。事件和函数用OR运算符分隔。

    var t = document.onmouseup || function () {};

请帮我理解上面这句话。

最佳答案

这一行是为了确保,对于代码的其余部分,t 具有有效的函数。

这意味着,如果document.onmouseup已经定义,则将其分配给t,否则分配虚拟函数function() {};t。这样,稍后我就可以执行 t() 而不必担心 t 是否是一个函数。

该代码利用 shortcircuit evaluation JavaScript 的逻辑运算符。

但我相信,这还不够万无一失。我会用

var t = typeof document.onmouseup === "function" ? document.onmouseup : function () {};

这两个代码之间的区别在于,有问题的代码只是确保 document.onmouseup 有一个 truthy value或不。但此答案中提出的代码确保 document.onmouseup 的类型是一个函数。

检查此程序以了解相关代码为何可能失败。

function func1() {
return 1;
}
var t = func1 || function() {};
console.log(t());
func1 = 1;
var t = func1 || function() {};
console.log(t());

输出

1
TypeError: number is not a function

关于Javascript:事件和函数的含义用OR运算符分隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20755942/

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