[英]javascript object assignment expression - comparison
假設我們有一個函數的可選參數,它可以是undefined
。 之間有什么區別
options || (options = {});
和
options = options || {};
? 如果沒有,您覺得哪個更好(我是說更快或更可讀)? 問題是- 您將使用哪一個在javascript中實現可選參數 ?
這兩行完全不同:
在第一個表達式中,它是一個對選項不執行任何操作的表達式(如果未定義),而另一個則是語句。
從邏輯上講,它們是相同的。
options || (options = {});
如果options
為Truthy值,則它將短路並且不會進入下一部分。 如果它是Falsy值,則轉到下一個部分,在該部分創建空對象並將其分配給options
。
options = options || {};
同樣的事情,右手第一側被評估。 如果options
為Truthy,它將按原樣分配給options
,如果為Falsy,則會創建一個空對象並將其分配給options
。
注意:如果options
是函數的可選參數,並且如果它可以接受其他Falsy值,即使用戶有意地傳遞Falsy值,例如false
,0, null
,它仍將使用一個空對象
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.