[英]Or symbol for JavaScript object declaration
我剛剛開始閱讀一些JavaScript項目。 大多數開頭的.js文件都有一個聲明如下的對象:
window.Example || {
bleh: "123";
blah: "ref"
}
什么是||
符號在這做?
Javascript中的對象是真實的,因此表達式計算為window.Example
或默認對象,如果window.Example
是falsy(或undefined)。 例:
var x = window.Example || {foo: 'bar'};
// x = {foo: 'bar'}, since window.Example is undefined
window.Example = {test: 1};
var y = window.Example || {foo: 'bar'};
// y = {test: 1}, since window.Example is truthy (all objects are truthy)
閱讀這篇文章,以獲得關於truthy / falsy和短路評估的詳細解釋。
||
運營商在JavaScript是像 “或”運營商在其他類似C語言,但它是截然不同的。 這真的意味着:
true
,那么該子表達式的值( 在強制轉換為布爾值之前 )是||
的值。 表達 ||
的值 表達。 因此,它慣用於初始化可能已經初始化的東西:
var something = window.something || defaultValue;
只是意味着,“檢查”某事物“是否是具有真值的window
對象的屬性,如果不是,則將其設置為defaultValue。”
該代碼中缺少一點重要的 - 變量聲明:
var something = window.Example || {
bleh: "123",
blah: "ref"
}
這大致轉換為“將something
設置為window.Example
,除非它不存在,否則將其設置為此新對象”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.