2017-04-13 101 views
0

我試圖找到在執行查找之前檢查存在的對象的練習的名稱(以任何語言)。通常,這是通過在JS在一個&&投擲物體與對象查找表達式之間,像這樣完成:這種做法叫做什麼? `objectName && objectName.thing`

var example = objectName && objectName.thing; 

使得example被評估以任一undefinedobjectName.thing,並避免運行時錯誤。

我可以發誓我以前聽說過這個,但我已經完全忘記了。這種做法叫做什麼?

+3

它通常被稱爲空校驗分配objectName.thingnullexample。 ** objectName的簡寫形式? – RJM

+0

objectName.thing:null ** – subash

+1

@subash不完全相同,因爲'objectName'也可以是'undefined'或任何其他值。 – Xufox

回答

1

由於左操作數的真實性看門狗有權訪問右操作數,因此有時稱之爲「警衛」。當然,這只是一個合乎邏輯的AND,但在這個特定的環境中使用AND有時被稱爲「警衛」。

從道格拉斯Crockford的A Survey of the JavaScript Programming Language

&&操作通常被稱爲邏輯和。它也可以叫做後衛

Guard and Default Operators of JavaScript由肖恩·麥克阿瑟:

在JavaScript中,這樣的語言決定了邏輯運算和如JavaScript對待使用AND和OR運算符true或false導致人們對後衛值和默認情況

+0

啊!守衛。無法記住它爲我的生活。謝謝! –

0

這種做法有時被稱爲驗證或評估。您可以使用三元運算符來執行此操作。

var example = objectName ? objectName.thing : null

這將取決於objectExample