如何在 JavaScript 中工作,如果不在控制语句中

How && works in JavaScript if isn't in a control statement?

本文关键字:如果不 控制语句 工作 JavaScript      更新时间:2023-09-26

最近我在处理一些JavaScript代码,我发现了这个:

<script type="text/javascript">
    window.localStorage&&window.localStorage.clear();
</script>

我在网上进行了研究,但没有找到任何关于"&&"运算符实际上如何工作的信息,如果不在控制语句中。

有谁知道它是如何工作的?

这与:

if(window.localStorage){
    window.localStorage.clear();
}

&&一旦看到false(或"虚假")值就会短路。

因此,如果window.localStorage false(或"虚假"),它就会停止。 如果这是真的,它将继续运行并运行window.localStorage.clear() . 返回值将被忽略。

if this code evaluates to a truthy value&&run this code

无论是否是控制语句的一部分,表达式都是表达式。在这种情况下,表达式涉及布尔运算。因此,如果true第一部分,表达式将计算第二部分。

在这种情况下,只有在未null window.localStorage时才会在window.localStorage上执行clear()方法。