Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 理解if语句代码有困难_Javascript_Html - Fatal编程技术网

Javascript 理解if语句代码有困难

Javascript 理解if语句代码有困难,javascript,html,Javascript,Html,我正在阅读一本关于HTML5的书,其中有两行代码我不太理解 var mp3Support,oggSupport; var audio = document.createElement('audio'); if(audio.canPlayType) { mp3Support = "" != audio.canPlayType('audio/mp3'); } 所以,首先创建一个音频元素并检查是否可以使用canPlayType方法? 那么,if语句中的代码是某种三元操作吗 audio

我正在阅读一本关于HTML5的书,其中有两行代码我不太理解

var mp3Support,oggSupport;
var audio = document.createElement('audio');
if(audio.canPlayType) {
        mp3Support = "" != audio.canPlayType('audio/mp3');
}
所以,首先创建一个音频元素并检查是否可以使用canPlayType方法? 那么,if语句中的代码是某种三元操作吗

audio.canPlayType('audio/mp3')输出“可能”,mp3Support设置为“”,但在该行之后,mp3Support输出true。任何提示都将不胜感激

 mp3Support = "" != audio.canPlayType('audio/mp3');
这将变量初始化与布尔表达式相结合

换句话说:

if(audio.canPlayType('audio/mp3')!="")
{
  mp3Support=true;
}
else
{
  mp3Support=false;
}
因此,首先创建一个音频元素

并检查是否可以使用canPlayType方法

检查的目的是查看
canPlayType
是否为真值,但在实际应用中,这是相同的

那么,if语句中的代码是某种三元操作吗

没有

audio.canPlayType('audio/mp3')
可以返回许多值,其中一个是空字符串

“”!=audio.canPlayType('audio/mp3')
测试它是否为空字符串(并计算为
true
false

mp3Support=
然后被分配为
true
false

可以更清楚地写为:

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

谢谢你的详细解释!