return Element,如果存在,则在JS中尽可能使用缩短方式使用三元运算符



有没有办法在不重复document.getElementById('myID')的情况下缩短myFx()函数?我只想返回元素,如果它存在,如果它不存在,则返回"false";。

该功能以这种方式运行良好,但我想知道是否有任何方法可以将其缩短一点。

HTML:

<div id="myID">Hello World!</div>

JavaScript:

function myFx(){
return (document.getElementById('myID') === null) ? false : document.getElementById('myID');

}
myFx().innerHTML = "Goodbye Cruel World!";

使用Nullish合并运算符(??(。

零合并运算符(??(是一种逻辑运算符,当其左侧操作数为nullundefined时,它返回右侧操作数,否则返回左侧操作数。

function myFx() {
return document.getElementById('myID') ?? false;
}
myFx().innerHTML = "Goodbye Cruel World!";
<div id="myID">Hello World!</div>

@c0m1t的答案是正确的,请注意这可能在旧的浏览器中不起作用。我不确定这在今天是否仍然是一个真正的问题,但无论如何。。这是一个即使在古代浏览器中也能工作的解决方案。

function myFx(){
var element = document.getElementById('myID');
return element || false;
}
myFx().innerHTML = "Goodbye Cruel World!";

最新更新