最近我正在使用一些 JavaScript 代码,我发现了这个:
<script type="text/javascript">
window.localStorage&&window.localStorage.clear();
</script>
我在网络上进行了研究,但没有发现任何关于 '&&' 操作符如果不在控制语句中的实际工作方式。
有谁知道它是如何工作的?
最近我正在使用一些 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
。
window.localStorage
在这种情况下,它只会在window.localStorage
is not时执行 clear() 方法null
。