我正在学习在 JavaScript 中创建 cookie,我在理解最后 3 行代码的工作时遇到问题。我知道这个问题不适合 Stackoverflow Standand,但如果有人友善地解释它,我将不胜感激。
function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : ";
expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}
最佳答案
如果 exdays 不为空,即它作为参数给出(在 JavaScript 中,函数可以接受任意数量的参数),则使用三元检查(if/else 简写),它会附加字符串“expires=...”到 cookie 字符串。否则,就没有过期字符串(它将是一个 session cookie)。
最后修改document.cookie。有关 cookie 和通过 JS 更改的更多信息,请参阅 www.quirksmode.org/js/cookies.html
基本上,要使用 JS 添加新的 cookie,您可以设置 document.cookie = "key=value"。其他 cookie 不会被覆盖,只是附加新的 cookie。
要删除其他cookie,需要设置一个过去的到期日期,它们将被浏览器清除。
如果您只是打印 document.cookie,您将看到所有 cookie(技术上不是所有 cookie,除了仅 http 的 cookie 等),但无法从 JavaScript 获悉它们的到期日期。
关于javascript - 无法理解 JavaScript 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9273278/