2016-07-27 2 views
-4

私はこの質問を数回見ましたが、私はまた、三項演算子が示唆し、使用されていることを見てきました。JavaScriptで短い手続きif文

私の例では3進演算子をどのように使うのか、それが最善の方法であるかどうか疑問に思っていました。

私のif文:YNはに何を指すん

dateSel.stock_qty <= (20) ? "Y" : "N"; 

if (dateSel.stock_qty <= 20) { 
    $(".stock_left").css("display", "block"); 
} else if (dateSel.stock_qty == 0) { 
    // do nothing 
} 

私はこれを変更しました。引用符内に関数を置くことはできますか?

このタイプのif文は、それを処理する最短の方法であるか、より良い方法があります。

+0

'dateSel.stock_qty'には、副作用のあるカスタムプロパティゲッターがありますか?もしそうでなければ(そして、間違いなく)、まず最初に 'else if 'を悩ますのはなぜですか? –

+0

'else if'は不可能です。最初の 'if'とマッチするでしょう。 – 4castle

+0

http://stackoverflow.com/documentation/javascript/221/conditions/2184/ternary-operators#t=201607271355273249966 – Brett

答えて

4

3次項は、通常のif条件とは異なり、2番目の部分をとにかく必要とするため、そこにあるものを短縮することはありません。また、三元は実際にはこれらの目的のために設計されていませんでした。

if(dateSel.stock_qty <= 20)$(".stock_left").css("display", "block"); 
0

if文のこのタイプ:これで

Goは、ちょうど他のブロックとブラケットを削除しますか?この場合はelse ifブロックが必要ないと思うので、if文を1つだけ使うことができます。あなたが:の後ろに何かをしたくないので、三元はここであなたを助けません。

0

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator

  • から三項は、基本的には単純な(またはあなたが「きれい」と言うことができる)方法であなたのIF文を書くための方法です。本当の利点はありません。しかし、それを使用する場合は、次のようになります。

    dateSel.stock_qty < =(20)? $( "。stock_left")。css( "display"、 "block"): "0";

ここで「else if」の部分を含めることはできません。セミコロンの後ろのちょうど純粋な "else": '

編集:状況を満たすためにセミコロンと追加番号を変更しました。以下で説明するように、これを行うのは良い方法ではないことに注意してください。

+0

LOLこれは今までに最強のリンクです。左揃えの英語版[MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator)を試してください – 4castle

+0

Zaid:リンクしたドキュメントを読む必要がありますもっと慎重に –

+0

リンクに間違った領域がありませんでした。 –