2017-09-11 7 views
-1

は、以下の変数への代入の性能と信頼性の違いは何ですか:JavaScriptの変数の割り当て:三項演算子VS object.property ||値

var obj = {name: "Antonia"}; 

var foo = obj.name ? obj.name : "foo"; 
var baz = obj.name || "baz"; 

obj.nameが定義されているので、FOOバズ両方が「アントニア」が含まれています。

私の知る限り、コードはobj.nameの値がnull、undefined、0およびfalse以外の場合に同じように動作するはずです。プロパティがこれらの値のいずれかに設定されている場合、fooには "foo"が含まれ、bazには "baz"が割り当てられます。

欠点がありますか? どちらをお勧めしますか?

ありがとうございます!

PS:フィドルはぎこちなく、同じことを達成し、あなたがいえたaroud https://jsfiddle.net/a2rgvhzm/

+2

私はこの時点で、それは個人的な好みについてのみだと思います... –

+0

私は@ Karl-AndréGagnonに同意します、またはバージョンはとにかく私にはっきりしています –

+0

あなたはまたあなたが求めているものを明確にするべきです。あなたが標準的な使い方を尋ねているように聞こえるかもしれません。その場合、実際にはありません。 –

答えて

0

例を再生します。そう、ええ、彼らはこの場合には同等です。

var foo = obj.name ? obj.name : "foo";

あなたは通常、真/偽と答えているobject.nameを持っているかどうかを求めているので、これは厄介です。ここでは、メンバー自身またはランダムな文字列で質問に答えます。したがって、質問/回答は一貫していません。

var baz = obj.name || "baz"; 私はこれがProductionでより広く使用されていると見てきました。これはより宣言的です。 "bazにオブジェクト名、ああを割り当て、それが存在しない場合はbazに文字列" baz "を割り当ててください。これは確かに存在します。"

これらのそれぞれを分析して、パフォーマンスについての質問に答えることができます。これがベストプラクティスに関するご質問を明確にすることを願っています。