簡體   English   中英

javascript對象分配表達式-比較

[英]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.

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