最近我跟一些JavaScript代码工作,我发现这一点:如果不在控制语句中,&&如何在JavaScript中工作?
<script type="text/javascript">
window.localStorage&&window.localStorage.clear();
</script>
我做研究各地的网络,但没有发现任何有关如何实际是“& &”操作符,如果不在控制语句。
有谁知道它是如何工作的?
最近我跟一些JavaScript代码工作,我发现这一点:如果不在控制语句中,&&如何在JavaScript中工作?
<script type="text/javascript">
window.localStorage&&window.localStorage.clear();
</script>
我做研究各地的网络,但没有发现任何有关如何实际是“& &”操作符,如果不在控制语句。
有谁知道它是如何工作的?
这是一样的:
if(window.localStorage){
window.localStorage.clear();
}
的&&
短路只要它看到一个false
(或 “falsy”)值。
因此,如果window.localStorage
是false
(或“falsy”),则停止。如果是,则继续并运行window.localStorage.clear()
。返回值被忽略。
if this code evaluates to a truthy value&&run this code
无论是否是控制语句的一部分,表达式都是一个表达式。在这种情况下,表达式涉及布尔操作。因此,如果第一个是true
,表达式将评估第二部分。
在这种情况下,只有window.localStorage
不是null
,它才会执行window.localStorage
上的clear()方法。
Heeey!非常感谢,这是一个非常好的窍门!还有另外一个类似的技巧? –
@FelipeLeñero:有'?:'。 'var c = x? a:b'与var c相同;如果(X){C = A}否则{C = B}'。还有'||'。 'var d = a || b || C'。 'd'将被设置为'a','b'和'c'的第一个非“falsy”值。 –