很少帮助理解这个设置的cookie函数?

时间:2015-06-01 19:18:08

标签: javascript cookies arguments

排名新手问题(原谅我) - 如果有更好的论坛,请告诉我。我想设置一个在三十天后过期的cookie。我在stackoverflow上找到了一个响应,并查看了有关如何设置cookie的几个在线解释,但我无法完全理解我所看到的内容。这是the answer given on stackoverflow

function createCookie(name, value, days) {
    var date, expires;
    if (days) {
        date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        expires = "; expires="+date.toGMTString();
    } else {
        expires = "";
    }
    document.cookie = name+"="+value+expires+"; path=/";
}

如果我错了(请),你可以在这里纠正我:

第1行创建一个名为createCookie的函数,其中包含三个参数namevaluedays。使用createCookie(testCookie, ?, 30);之类的函数调用函数时,将定义或设置这些参数。我在论证value中有一个问号,因为我不确定那里会发生什么。

第2行建立了两个变量dateexpires,而没有为这些变量赋值。

第3行说明参数days然后直接执行某些行。这超出了我对JS的理解,因为到目前为止,我已经完成了if (x > 10) {这样的事情,其中​​x > 10定义了一个条件,当条件为真时,下面括号中的代码会被执行,如果没有,它就会被执行跳到if / else的else部分。根据我的理解,days并不是一个条件。我想我的理解这一部分并不是最重要的,只要它有效。

第4行创建一个名为date的变量,并为其指定当前日期。

第5行date.setTime(date.getTime()+(days*24*60*60*1000));使用函数的参数days进行数学计算,以得出实际的到期日期并将其分配给变量date

第6行expires = "; expires="+date.toGMTString();为变量expires指定一个值,但我不太关注,因为看起来值是{{​​1}}的串联,未定义那一点,加上以字符串表示的参数expires的值?此外,现在看来date已被弃用?同样,可能的情况是,我对此的理解并不是最重要的;然而,我的缺乏增加了我的整体困惑。

第8行将Cookie设置为toGMTString()加上字符串name"="value加上字符串expires。我仍然不知道"; path=/"应该是什么......

有人想帮我理解这个吗?谢谢!

2 个答案:

答案 0 :(得分:0)

第1行 - 值是您要存储在Cookie中的数据。

createCookie("testCookie", "The value I want to store", 30);

第3行 - 这是一个真正的检查,它正在检查以确保天数未定义。

第6行 - 我认为你混淆了字符串" expires"变量到期。对于GMT,可能是在它被弃用之前写的。

答案 1 :(得分:0)

function createCookie(name, value, days) { // this passes in the values for the cookie you want to store
    var date, expires; // set the variables
    if (days) { // check to make sure days is not undefined
        date = new Date(); // sets todays date
        date.setTime(date.getTime()+(days*24*60*60*1000)); // does maths to make it expiry after `day` parameter you passed into the function.
        expires = "; expires="+date.toGMTString(); // sets the expiry date
    } else {
        expires = ""; // else if days is undefined sets nothing to expiry
    }
    document.cookie = name+"="+value+expires+"; path=/"; // sets the cookie.
}