跳到主要内容位置

Cookie API:创建、读取和删除 Cookie

Cookie 是一个小型的文本文件,它存储在用户的计算机上,并在浏览器和服务器之间传递。Cookie 通常用于存储一些用户偏好设置、网站登录信息、购物车内容等等。通过使用 Cookie,网站可以为用户提供个性化的服务。

在 JavaScript 中,我们可以使用 document.cookie 属性来创建和管理 Cookie。document.cookie 属性的值是一个字符串,它包含了当前文档中所有的 Cookie 信息。我们可以通过修改 document.cookie 属性来添加、修改、删除 Cookie。

下面是一个简单的示例,展示如何创建一个 Cookie:

document.cookie = "name=value; expires=Thu, 01 Jan 2099 00:00:00 UTC; path=/";

在这个示例中,我们使用 document.cookie 属性来创建一个名为 name,值为 value 的 Cookie。expires 属性用于设置 Cookie 的过期时间,path 属性用于指定 Cookie 的作用域。在这个示例中,我们将 Cookie 的过期时间设置为 2099 年 1 月 1 日,作用域为整个网站。

在 JavaScript 中,我们可以通过读取 document.cookie 属性来获取当前文档中所有的 Cookie 信息。document.cookie 属性的值是一个字符串,包含了所有的 Cookie 信息,我们可以通过解析这个字符串来获取指定的 Cookie。

下面是一个示例,展示如何读取名为 name 的 Cookie:

function getCookie(name) {
const cookies = document.cookie.split('; ');
for (const cookie of cookies) {
const [cookieName, cookieValue] = cookie.split('=');
if (cookieName === name) {
return cookieValue;
}
}
return null;
}

const name = getCookie('name');

在这个示例中,我们首先定义了一个 getCookie() 函数,它接受一个参数 name,用于指定要读取的 Cookie 的名称。在函数内部,我们使用 document.cookie 属性来获取当前文档中所有的 Cookie 信息,并使用 split() 方法将字符串分割成一个个的 Cookie。然后,使用 split() 方法将每个 Cookie 分割成名称和值,并使用 for...of 循环来遍历每个 Cookie。在遍历过程中,如果找到了指定名称的 Cookie,就返回它的值。如果没有找到指定名称的 Cookie,就返回 null

在 JavaScript 中,我们可以通过将 Cookie 的过期时间设置为过去的时间来删除 Cookie。下面是一个示例,展示如何删除名为 name 的 Cookie:

document.cookie = "name=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";

在这个示例中,我们将 Cookie 的过期时间设置为 1970 年 1 月 1 日,这意味着这个 Cookie 已经过期,浏览器会自动删除它。

需要注意的是,删除 Cookie 的时候需要指定 Cookie 的作用域和过期时间,否则可能无法正确删除 Cookie。

总结

Cookie 是一个非常有用的技术,它可以帮助网站存储用户的偏好设置、登录信息、购物车内容等等。通过 JavaScript 中的 document.cookie 属性,我们可以创建、读取和删除 Cookie。需要注意的是,Cookie 的作用域和过期时间非常重要,需要根据实际情况进行适当的设置。同时,为了保护用户的隐私,我们应该避免在 Cookie 中存储敏感信息。

提示

一系列的课程让你成为高级前端工程师。课程覆盖工作中所有常用的知识点和背后的使用逻辑,示例全部都为工作项目简化而来,学完即可直接上手开发!

即使你已经是高级前端工程师,在课程里也可能会发现新的知识点和技巧,让你的工作更加轻松!

《React 完全指南》课程,连载中现只需 48 元(领取优惠券)点击查看详情。

《Vue 3.x 全家桶完全指南与实战》课程,包括 Vue 3.x、TypeScript、Vue Router 4.x、Vuex 4.x 所有初级到高级的语法特性详解,让你完全胜任 Vue 前端开发的工作。点击查看详情。

《React即时通信UI实战》课程,利用 Storybook、Styled-components、React-Spring 打造属于自己的组件库。

《JavaScript 基础语法详解》本人所著图书,包含 JavaScript 全面的语法知识和新特性, 可在京东、当当、淘宝等各大电商购买