switch(true)作为else-if的替代
switch (true) as alternative to else if
我见过多次使用switch(true)
,今天我自己也用过,而不是多个else ifs
。这是我使用它的情况:
var isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') != -1;
var isSafari = navigator.userAgent.toLowerCase().indexOf('safari') != -1;
var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') != -1;
var browser = null;
switch (true) {
case isChrome:
{
browser = "chrome";
break;
}
case isSafari:
{
browser = "safari";
break;
}
case isFirefox:
{
browser = "firefox";
break;
}
}
我的观点比多重else ifs
要明确得多。你认为这是个好方法吗?
这实际上只是个人意见的问题。switch(true)
一开始可能会让人感到困惑,但它在速度或语义方面并不重要。I、 个人认为if...else
在这种情况下看起来更好,因为选择太少了。如果有10-15个浏览器,我可能会使用switch
。
如果你想寻求纯粹的简洁性,@adeneo的正则表达式会起作用,但这将更难理解,因为有了这个代码
var ua = navigator.userAgent.toLowerCase(),
browser = ua.match(/(chrome|safari|firefox)/).length ? ua.match(/(chrome|safari|firefox)/)[0] : 'nope';
console.log(browser);
它看起来非常酷和简洁,但似乎有点不直观。我只想说,无论你想做什么都没问题,这样的事情没有标准。
相关文章:
- Jquery else if statement
- Javascript skips else if?
- JqueryUI,多个ID和else if 语句在可丢弃,我如何让它们工作
- JQuery Else if statement?
- 以这种方式使用if/else-if/else是一种很好的做法
- switch(true)作为else-if的替代
- else-if子句未按预期工作
- 使用if-else-if-true检查(验证)单选按钮如果未检查则无警报必须检查警报
- Javascript else-if语句错误
- `else if `从不执行;只执行前面的“if”
- 正在创建嵌套的if+else-if语句,但函数返回为未定义
- else-if条件在js渲染模板中
- 我的if和else-if逻辑中的问题以及两个函数的冲突
- 带有if语句的循环的Javascript未到达else-if语句
- 使用 If else if else 语句得到错误
- if-else-if JavaScript 返回 true 并退出,无论输入如何
- Jquery else if is not working
- 如何在 Angular JS 中执行开关或 else/if 语句
- 我可以在 html 文档中使用 if/else if 命令吗?
- 我需要帮助“调试”If/Else if/Else 语句的语法