2

例:

var x, y, z;
//...
x > 100 ? y = x : z = x ;
4

8 に答える 8

3

はい、同じように機能しますが、演算子の優先順位は常に注意が必要なので、混乱を避けるために括弧をお勧めします。

接線方向に関連しています。C#の null 合体演算子と同様に、JavaScript で
使用することもできます。||??

于 2010-11-08T17:01:09.610 に答える
2

これが機能するかどうかはわかりません:

x > 100 ? y = x : z = x ;

しかし、これは機能します:

y = x > 100 ? foo : bar ;
于 2010-11-08T17:02:14.137 に答える
1

はい、三項演算子は Javascript でも同じように機能します。あなたの例は多くの式を組み合わせているため、優先順位が問題になる可能性があります。優先順位を確保するために括弧を使用する必要があります。

于 2010-11-08T17:01:14.383 に答える
1

これは(将来的に)あなたを助けるはずです:

https://developer.mozilla.org/en/JavaScript/Reference/Operators/Operator_Precedence

優先順位が 8 であるため、最初に>比較が評価さ?:=ます。これは、代入の前に三項演算子が実行されることを意味します (つまり、最初のオペランドである条件が評価され、分岐のみが選択されます)。

簡単なテストも

//x = 50;
x = 200;
x > 100 ? y = x : z = x ;
alert((typeof y)+'|'+(typeof z));

あなたの質問に答えたでしょう。

于 2010-11-08T17:02:56.847 に答える
1

はい、次の基本的な構文を持つという点で同じように機能します

condition ? true-expression : false-expression

式を評価するだけなので、条件によって指定された式の副作用を処理します。

三項演算子に関する Mozilla ドキュメントへのリンクは次のとおりです。

于 2010-11-08T17:03:07.147 に答える
1

はい、三項演算子は、C、C++、C#、Java、Javascript、Perl、および PHP と同じように Javascript でも機能します。

于 2010-11-08T17:04:05.397 に答える
1

はい、ウィキペディアの条件演算子の記事とECMA-262標準によると (セクション 11.12 を参照)。

于 2010-11-08T17:04:38.263 に答える
1

ここに別のアプローチがあります。三項を使用して、角括弧内の文字列として変数を選択できます。

これは、グローバルであることをwindow前提yとしzています。それ以外の場合は、適切なコンテキストを提供する必要があります。

window[x > 100 ? 'y' : 'z'] = x;
于 2010-11-08T17:12:23.413 に答える