ホームページ >ウェブフロントエンド >フロントエンドQ&A >JavaScript の三項演算子とは何ですか?
Javascript には、単純な選択構造に使用できる三項演算子「? ... :」が 1 つだけあります。基本的な構文は、「ブール式? 文 1 : 文 2」です。「ブール式」の値がis true の場合は、sentence1 が実行され、それ以外の場合は、sentence2 が実行されます。
このチュートリアルの動作環境: Windows 7 システム、ECMAScript バージョン 5、Dell G3 コンピューター。
javascript 三項演算子
JavaScript の三項演算子を判定に使用する場合、基本的な構文は次のとおりです。 expression ? 文 1 : 文 2
expression
の値が true の場合は sentence1
を実行し、それ以外の場合は sentence2
を実行してください。コード
var b = 1, c = 1 a = 2; a >= 2 ? b++ : b--; b // 2 a < 2 ? c++ : c--; c // 0
を見てください。上記のコードから、三項演算子は if else (詳細は後述)
if(expression){ sentence1; } else { sentence2; }
When expression
と一時的に同等であると考えます。 true 、つまり expression
が unknown
, NaN
, 0
, null ではない場合に
sentence1# が実行されます。 ##、そうでない場合は、
sentence2 を実行します。
expression1 ? sentence1 : expression2 ? sentence2 : expression3 ? sentence3 : ...いずれかの式N の判定が true である限り、文 N は直ちに実行されます。この判定は終了し、それ以降の判定は実行されなくなります。そして、if-else
if(expression1){ sentence1; } else if(expression2){ sentence2; } else if(expression3){ sentence3; } ...のようにロジックを書くと、このようにロジックを書くのが面倒になりそうなので、jquery や zepto のソース コードには三項演算子の応用が多く表示されます。
割り当て
もう 1 つの古典的なアプリケーション シナリオは、割り当て、var param =expression? value1 : value2、これだと思います。
var b, c = 1; var a = b ? 2 : 1; a // 1 var a = c > 0 ? 2 : 1 a // 2
ネゴシエートとネゴシエーションを頻繁に使用します
ある日、私はこのようなコードを書きましたfunction xx(){ var a = 1, b = 3; a < b ? return false : '' }実際にエラーを報告しました! なぜエラーが報告されるのでしょうか? 上記の複数の判定を詳しく見ていきます
expression1 ? sentence1 : expression2 ? sentence2 : expression3 ? sentence3 : ...1 つの式 N が true である限り、それはすぐに出力されます。原因は何でしょうか? 三項演算子がsentenceNを返すため、すぐに判定が飛んでしまうためと推測されます。代入の使い方も同様で、なぜエラーが報告されるかというと、
if(expression){ return (return 2); }のように書くと必ずエラーが報告されるからです。したがって、上記の説明に疑問がある場合は、次のようなコードを使用して証明できます: 式の実行後に n が 1 ずつ追加されるため、
var a = 1, b = 2; var c = b > 1 ? a++ : 0; c // 1c が 1 になるのはなぜですか。 ##、最初に戻り、次に 1 を追加します。つまり、ここでの c は 1 に等しいです。
プログラミング関連の知識の詳細については、
プログラミング ビデオ
以上がJavaScript の三項演算子とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。