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

时间:2012-05-25 18:57:54

标签: javascript operators

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

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

我在网上做过研究,但没有发现任何关于'&amp;&amp;'的实际情况。如果不在控制语句中,则运算符有效。

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

3 个答案:

答案 0 :(得分:4)

这与:

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

&&只要看到false(或“假”)值就会短路。

因此,如果window.localStoragefalse(或“假”),则会停止。如果是真的,它会继续并运行window.localStorage.clear()。返回值被忽略。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

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