JavaScript 箭头函数,以 navigator.userAgent 为例
JavaScript arrow-function using navigator.userAgent as an example
const browser = ((agent) => {
switch (true) {
case agent.indexOf("edge") > -1: return "edge";
case agent.indexOf("edg") > -1: return "chromium based edge (dev or canary)";
case agent.indexOf("opr") > -1 && !!window.opr: return "opera";
case agent.indexOf("chrome") > -1 && !!window.chrome: return "chrome";
case agent.indexOf("trident") > -1: return "ie";
case agent.indexOf("firefox") > -1: return "firefox";
case agent.indexOf("safari") > -1: return "safari";
default: return "other";
}
}) (window.navigator.userAgent.toLowerCase());
有一个简单示例如何使用 Window
对象的 navigator.userAgent
属性 检测浏览器。有人可以解释这段代码的最新行实际上做了什么以及为什么这里需要 toLowerCase()
方法吗?
}
箭头函数结束
)
箭头函数周围的分组运算符结束
(...)
调用函数,带参数
window.navigator.userAgent.toLowerCase()
争论
why toLowerCase() method is necessary here?
因为它正在进行case-insensitive比较
const browser = ((agent) => {
switch (true) {
case agent.indexOf("edge") > -1: return "edge";
case agent.indexOf("edg") > -1: return "chromium based edge (dev or canary)";
case agent.indexOf("opr") > -1 && !!window.opr: return "opera";
case agent.indexOf("chrome") > -1 && !!window.chrome: return "chrome";
case agent.indexOf("trident") > -1: return "ie";
case agent.indexOf("firefox") > -1: return "firefox";
case agent.indexOf("safari") > -1: return "safari";
default: return "other";
}
}) (window.navigator.userAgent.toLowerCase());
有一个简单示例如何使用 Window
对象的 navigator.userAgent
属性 检测浏览器。有人可以解释这段代码的最新行实际上做了什么以及为什么这里需要 toLowerCase()
方法吗?
}
箭头函数结束
)
箭头函数周围的分组运算符结束
(...)
调用函数,带参数
window.navigator.userAgent.toLowerCase()
争论
why toLowerCase() method is necessary here?
因为它正在进行case-insensitive比较