Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.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.else切换转换_Javascript_If Statement_Switch Statement - Fatal编程技术网

Javascript初学者if.else切换转换

Javascript初学者if.else切换转换,javascript,if-statement,switch-statement,Javascript,If Statement,Switch Statement,我是一个JavaScript的完全初学者,并且已经研究了很长一段时间了,我觉得我已经尝试了很多不同的方法来编写代码,但它似乎并没有按预期的那样工作,什么都没有发生 我要转换此if语句: if (browserName == "MSIE") { } else if (browserName == "IE11+") { } else if (browserName == "Chrome") { } else if (browserName == "Firefox") { } else if (b

我是一个JavaScript的完全初学者,并且已经研究了很长一段时间了,我觉得我已经尝试了很多不同的方法来编写代码,但它似乎并没有按预期的那样工作,什么都没有发生

我要转换此if语句:

if (browserName == "MSIE") {
} else if (browserName == "IE11+") { 
} else if (browserName == "Chrome") { 
} else if (browserName == "Firefox") {
} else if (browserName == "Safari") {
} else alert("your browser is not compatible, please use one of these web browsers: Google Chrome, Mozilla Firefox, Internet Explorer or Apple Safari.")
在switch语句中,这是我当前拥有的:

switch (browserName) {
    case '1': == "MSIE"();
        break; 
    case '2': == "Safari"();
        break;
    case '3': == "Chrome"();
        break;
    case '4': == "IE11+"();
        break;
    case '5': == "Firefox"();
        break;
    default:
        alert("test1");
}
我只想让它跳到else警报,如果它没有检测到浏览器的名称。 任何帮助都将不胜感激。

试试以下方法:

switch (browserName) {
    case "MSIE": //Do MSIE work here
        break; 
    case "Safari": //Do Safari work here
        break;
    case "Chrome": //Do Chrome work here
        break;
    case "IR11+": //Do IE11+ work here
        break;
    case "Firefox": //Do Firefox work here
        break;
    default:
        alert("Browser Not Recognized!");
}

在switch语句中,不能执行以下操作:

case '1': == "MSIE"();
相反,你应该:


  case 'MSIE':
     //do code
     break;

希望有帮助。

案例后面的值应该是您想要匹配的值:

switch (browserName) {
    case "MSIE":
        // do something
        break; 
    case "Safari":
        // do something
        break;
    case "Chrome":
        // do something
        break;
    case "IE11+":
        // do something
        break;
    case "Firefox":
        // do something
        break;
    default:
        alert("test1");
        break;
}
如果您所关心的只是值与任何已知值不匹配的情况,则可以将
案例
堆叠在一起:

switch (browserName) {
    case "MSIE":
    case "Safari":
    case "Chrome":
    case "IE11+":
    case "Firefox":
        break;
    default:
        alert("test1");
        break;
}

将其转换为switch语句的方法如下:

switch (browserName) {
    case "MSIE":
        break; 
    case "Safari":
        break;
    case "Chrome":
        break;
    case "IE11+":
        break;
    case "Firefox":
        break;
    default:
        alert("Your browser is not compatible, please use one of these web browsers: Google Chrome, Mozilla Firefox, Internet Explorer or Apple Safari.");
}
你也可以这样做:

switch (browserName) {
    case "MSIE":
    case "Safari":
    case "Chrome":
    case "IE11+":
    case "Firefox":
    default:
        alert("Your browser is not compatible, please use one of these web browsers: Google Chrome, Mozilla Firefox, Internet Explorer or Apple Safari.");
}
但这样做可能更好:

function checkBrowser(browserName) {
    var compatibleBrowsers = ['MSIE', 'Safari', 'Chrome', 'IE11+', 'Firefox'];
    if (compatibleBrowsers.indexOf(browserName) !== -1) { return; }

    alert("Your browser is not compatible, please use one of these web browsers: Google Chrome, Mozilla Firefox, Internet Explorer or Apple Safari.");
}

您应该检测功能,而不是浏览器。或者Firefox0.9(大约2004年)就可以了?你说的“MSIE”(MSIE)是什么意思@FabrizioCalderan的观点很好,但从如何使用
开关
语句的角度来看并不相关。@JLRishe这就是我写评论而不是回答的原因。而且检测功能可能比任何开关语句都要容易。非常感谢您的帮助,非常感谢。:)谢谢你的帮助。它工作得很好。我明白我现在做错了什么。:)帮了大忙