以下是在线上 float 的通用代码,这些代码检查是否在特定浏览器中启用了cookie:

var cookieEnabled = (window.navigator.cookieEnabled) ? true : false;

if (typeof navigator.cookieEnabled == "undefined" && !cookieEnabled) {
    document.cookie = "testcookie"
    cookieEnabled = (document.cookie.indexOf("testcookie") != -1) ? true : false
}

if (!cookieEnabled) {
    // do some work
}

为什么第一行和第五行三元声明?是否
var cookieEnabled = (window.navigator.cookieEnabled) ? true : false;

遇到以下情况不会的情况?
var cookieEnabled = (window.navigator.cookieEnabled);

第五行也是如此。

最佳答案

第一行的三元语句很有用,因为它会将可能的非 bool(boolean) 值转换为 bool(boolean) 值。考虑以下代码

window.navigator.cookieEnabled = "evil people do this";

以上是合法的,正如值(value)所表明的,邪恶的人这样做。没有三元语句,以下代码将无法按预期执行
if (cookiesEnabled === false) {
  // ...
}

07-26 05:45