2017-04-13 10 views
0

私は、オブジェクトを検索する前にオブジェクトが存在するかどうかを調べる(すべての言語で)練習の名前を見つけようとしています。 exampleundefinedまたはobjectName.thingのいずれかに評価されこの練習は何と呼ばれていますか? `objectName && objectName.thing`

var example = objectName && objectName.thing; 

ように、およびランタイムエラーを回避:通常、これはJSにそうように、オブジェクトとオブジェクトのルックアップ式の間で&&に投げることによって行われます。

私はこれまでに聞いたことがありますが、私は完全に忘れました。この練習とは何ですか?

+3

に応じてexampleからobjectName.thingまたはnullを割り当てます。 – RJM

+0

** objectNameの短縮形ですか? objectName.thing:null ** – subash

+1

@subash 'objectName'は' undefined'または他の値でもよいので、全く同じではありません。 – Xufox

答えて

1

これは、左オペランドの正当性が正しいオペランドへのアクセスを保護するため、「ガード」と呼ばれることがあります。もちろん、これは単なる論理ANDですが、この特定のコンテキストでのANDの使用は、「ガード」と呼ばれることがあります。ダグラス・クロックフォードのA Survey of the JavaScript Programming Languageから

&&オペレータは、一般的に論理的と呼ばれている

ガードとも呼ばれます。ショーンマッカーサーによってGuard and Default Operators of JavaScriptから

:JavaScriptで

、言語は論理演算とガードのためにANDとOR演算子を使用している人々に真または偽のリードを扱うJavascriptの値を決定方法デフォルト状況

+0

ああ!ガード。私の人生のためにそれを覚えていませんでした。ありがとう! –

0

この習慣は、検証または評価と呼ばれることがあります。 の3進演算子を使用すると、そうすることができます。

var example = objectName ? objectName.thing : null

これは、それは通常、ヌルチェックと呼ばれていますobjectExample

関連する問題