簡體   English   中英

或JavaScript對象聲明的符號

[英]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語言,但它是截然不同的。 這真的意味着:

  1. 評估左側的子表達式。
  2. 如果該值在強制轉換為布爾值時為true ,那么該子表達式的值( 強制轉換為布爾值之前 )是||的值。 表達
  3. 否則評估右側子表達式並將其值作為||的值 表達。

因此,它慣用於初始化可能已經初始化的東西:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM