1

我正在关注 HTML5 游戏书中的一些代码,但无法理解这行代码是如何工作的 -

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

我已经弄清楚它的含义与-

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

但我似乎无法理解它的有效性。如何将mp3Support变量分配给空字符串,然后测试它是否不等于同一行上的所有内容?我以前从未遇到过这种情况,这让我很困惑。

4

3 回答 3

3

mp3Support最终为真或假,x != y返回真或假。

效果一样,但比写的短

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

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

可以写成

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

最后一部分返回真或假。

于 2013-04-29T19:50:56.823 回答
0

!=运算符不是赋值运算符,它是比较运算符。因此,在右侧=(始终在=运算符赋值之前执行),代码将audio.canPlayType('audio/mpeg')的返回值与空字符串进行比较。=如果返回值是空字符串(或任何其他错误值,但您应该阅读上面的比较运算符链接以获取详细信息),则语句的右侧计算为false. 否则,右侧将评估为true。然后将该比较产生的布尔值分配给mp3Support

于 2013-04-29T19:52:43.483 回答