1

HTML5 ゲーム ブックのいくつかのコードに従っていますが、このコード行がどのように機能するのか理解できません -

mp3Support = "" != audio.canPlayType('audio/mpeg');

私はそれが同じことを意味することを理解しました -

if(audio.canPlayType('audio/mpeg') !=  "") {
    mp3Support = audio.canPlayType('audio/mpeg');
}

しかし、それがどのように有効であるかについて頭を悩ませることはできないようです。変数を空の文字列に割り当ててmp3Supportから、同じ行にある何かと等しくないかどうかをテストするにはどうすればよいでしょうか? 私はこれまでにこれに出くわしたことがなく、私を困惑させています。

4

3 に答える 3

3

mp3Supporttrue または false をx != y返すため、最終的に true または false のいずれかになります。

同じ効果だが書くより短い

if(audio.canPlayType('audio/mpeg') !=  "") mp3Support = true;
else mp3Support = false;
于 2013-04-29T19:49:21.903 に答える
0

!=演算子は代入演算子ではなく、比較演算子です。=そのため、 (演算子が値を割り当てる前に常に実行される)の右側=で、コードはaudio.canPlayType('audio/mpeg')の戻り値を空の文字列と比較しています。=戻り値が空の文字列 (またはその他の誤った値ですが、詳細については上記の比較演算子のリンクを参照してください) の場合、ステートメントの右側は に評価されfalseます。それ以外の場合、右辺は に評価されtrueます。次に、その比較の結果のブール値が に割り当てられmp3Supportます。

于 2013-04-29T19:52:43.483 に答える
0

mp3Support = "" != audio.canPlayType('audio/mpeg');

次のように書くことができます

mp3Support = ("" != audio.canPlayType('audio/mpeg'));

そして、その最後の部分は true または false を返します。

于 2013-04-29T19:50:56.823 に答える