0

私はこれを送ったばかりで、この変数宣言の最後の部分について確信が持てません:

var u = (document.getElementById('myaccount').className.match(/loggedin/)) ? 'true' : 'false';

私が見ることができることから、これは文字列「loggedin」のパターンマッチを実行していますが、最後? 'true' : 'false';の部分は何をしますか?

私はこれまでこのようなものを見たことがないので、よくわかりません...

4

5 に答える 5

4

これは三項演算子です。次のようになります。

result = condition ? value_if_true : value_if_false;

これは単なる省略形です:

if(condition == true) {

    result = value_if_true;

} else {

    result = value_if_false;

}

パーツはcondition変数、関数、または式にすることができるため、以下がすべて有効です。

result = myVariable ? value if true : value if false;

result = myFunction() ? value if true : value if false;

result = (myVariable > 10) ? value if true : value if false;
于 2012-06-01T10:28:37.693 に答える
1

インラインの場合

condition_check ? result if true : result if false
于 2012-06-01T10:27:53.803 に答える
0

その三元のif/elseステートメント。

className.match(/ logged /)がtrueと評価された場合はtrueを返し、そうでない場合はfalseを返します。

より上品な書き方

var u;
if(document.getElementById('myaccount').className.match(/loggedin/)) {
    u = true;
} else {
    u = false;
}
return u;
于 2012-06-01T10:27:07.173 に答える
0

これは、3値のifステートメントと呼ばれます。

myaccount要素にクラス' loggedin 'がある場合、変数uはTRUEに設定されます。それ以外の場合は、FALSEに設定されます。

于 2012-06-01T10:28:04.387 に答える
0

これは、ifステートメントを宣言する別の方法です

<condition> ? <return if condition is true> : <return if condition is false>

これと同じです

var u;
if (document.getElementById('myaccount').className.match(/loggedin/)){
   u = 'true'; 
} else {
   u = 'false';
}
于 2012-06-01T10:29:54.757 に答える