Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查元素的存在性并在一行中指定给变量_Javascript - Fatal编程技术网

Javascript 检查元素的存在性并在一行中指定给变量

Javascript 检查元素的存在性并在一行中指定给变量,javascript,Javascript,以下检查和分配是否可以用一行书写 const panel = this.element.querySelector(".c-global-search__panel"); this.panel = (panel instanceof HTMLElement) ? panel : null; 比如: this.panel = (variable = querySelection and condition) ? assignment : fallback; 您可以使用简单的|(或),因为que

以下检查和分配是否可以用一行书写

const panel = this.element.querySelector(".c-global-search__panel");
this.panel = (panel instanceof HTMLElement) ? panel : null;
比如:

this.panel = (variable = querySelection and condition) ? assignment : fallback;

您可以使用简单的
|
(或),因为
querySelector
的返回值是
HTMLElement | null
HtmleElement
为真值,因此将返回它,如果为空,则使用回退

this.panel = this.element.querySelector(".c-global-search__panel") || fallback;

还有空合并运算符。这是新的,浏览器还不支持(仅限TS和Babel),但它更好,因为它也将false和0视为有效值。但在这种情况下,它是不需要的

this.panel = this.element.querySelector(".c-global-search__panel") ?? fallback;

但是一个旁注。。。无论如何,引擎都会进行这种优化,没有真正的必要这样做。而不是一行程序关注可读性。

您可以使用简单的
|
(或),因为
querySelector
的返回值是
HTMLElement | null
HtmleElement
为真值,因此将返回它,如果为空,则使用回退

this.panel = this.element.querySelector(".c-global-search__panel") || fallback;

还有空合并运算符。这是新的,浏览器还不支持(仅限TS和Babel),但它更好,因为它也将false和0视为有效值。但在这种情况下,它是不需要的

this.panel = this.element.querySelector(".c-global-search__panel") ?? fallback;

但是一个旁注。。。无论如何,引擎都会进行这种优化,没有真正的必要这样做。而不是一行代码关注可读性。

您不需要第二行。如果未找到元素,则已返回
null

this.panel = this.element.querySelector(".c-global-search__panel");

第二行将值设置为
null
是多余的。

您不需要第二行。如果未找到元素,则已返回
null

this.panel = this.element.querySelector(".c-global-search__panel");
第二行将值设置为
null
是多余的