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() 方法吗?

Source

}

箭头函数结束


)

箭头函数周围的分组运算符结束


(...)

调用函数,带参数


window.navigator.userAgent.toLowerCase()

争论


why toLowerCase() method is necessary here?

因为它正在进行case-insensitive比较