我见过多次使用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)
一开始可能会令人困惑,但对于速度或语义而言,这实际上并不重要。我个人认为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);
看起来非常酷和简洁,但似乎有点不直观。我只想说,你想做什么都可以,这样的事情没有标准。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)