29874


以下の部分の挙動はどうなっているのでしょうか？

[code]

    function toggle(element,classe) {
        element.className = element.className ? '' : classe; //この部分です。 
    }
    
[/code]


CC BY-SA 3.0
2016-10-24T21:31:00.287
29873
2016-11-16T15:22:03.430
2016-11-16T15:22:03.430
3054
18632
question
javascript
「値 ? ' ' : 値」の挙動はどうなっているのでしょうか


[三項演算子](https://developer.mozilla.org/ja/docs/JavaScript/Reference/Operators/Conditional_Operator)ですね。

条件式 ? 条件が真の場合の値 : 条件が偽の場合の値

条件が真の時この式全体の値として「条件が真の場合の値」になり、偽の場合「条件が偽の場合の値」になります。

なので、

`element.className = element.className ? '' : classe;`

は、  
エレメントにクラス名が設定されていたら(`element.className`) 空文字(`''`)にする。  
そうでなければ（つまりクラス名が設定されていなかったら）`classe` をクラス名として設定する。  
という意味になります。


CC BY-SA 3.0
2016-10-24T21:42:24.043
29874
2016-10-24T21:53:39.067
2016-10-24T21:53:39.067
5044
5044
29873
answer