JS前端操作 Cookie源码示例解析

当我们需要在前端操作Cookie时,我们可以通过JavaScript来实现。以下是针对Cookie相关操作的完整攻略:

什么是Cookie?

Cookie是在浏览器上存储的一些文本数据,这些数据通常是与网站相关联的,如用户ID、购物车数据等。通过设置Cookie,可以更好地跟踪和管理用户的首选项、购物车数据、登录信息等。

前端如何操作Cookie?

前端操作Cookie的主要方式是通过JavaScript的document.cookie属性。这个属性允许我们读取、写入和删除Cookie。document.cookie返回当前浏览器会话中可用的所有Cookie字符串,并且可以通过字符串分离和解析属性以读取或设置任意值。

以下是一些使用JavaScript操作Cookie的示例:

1. 读取Cookie

使用document.cookie属性来读取当前浏览器会话中存在的Cookie。

let cookieStr = document.cookie;
console.log(cookieStr);

2. 设置Cookie

使用document.cookie属性来设置新的Cookie。在这个例子中,我们将设置一个名为username的新Cookie。

const username = "John Doe";
const cookieValue = encodeURIComponent(username);
document.cookie = `username=${cookieValue}; path=/`;

在这个例子中,我们使用了encodeURIComponent()来将字符串作为值编码并保证在写入Cookie时不会引发语法错误。我们还指定了一个路径来限制仅在路径为/下的页面才可见。

3. 删除Cookie

可以通过将Cookie的过期日期设置为一个过去的时间来删除Cookie。

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

在这个例子中,我们将过期日期设置为从1970年1月1日起的过去时间,这将导致该Cookie被删除。注意,这里必须指定该Cookie存在的路径及名称。

Cookie源码示例解析

在以下示例中,我们将创建一个JavaScript函数来设置、读取和删除Cookie。

function setCookie(cookieName, cookieValue, expirationDays) {
  const date = new Date();
  date.setTime(date.getTime() + (expirationDays * 24 * 60 * 60 * 1000));
  const expires = `expires=${date.toUTCString()}`;
  document.cookie = `${cookieName}=${cookieValue};${expires};path=/`;
}

function getCookie(cookieName) {
  const name = `${cookieName}=`;
  const cookies = document.cookie.split(';');
  for(let i = 0; i < cookies.length; i++) {
    let temp = cookies[i];
    while (temp.charAt(0) === ' ') {
      temp = temp.substring(1);
    }
    if (temp.indexOf(name) === 0) {
      return temp.substring(name.length, temp.length);
    }
  }
  return '';
}

function deleteCookie(cookieName) {
  document.cookie = `${cookieName}=;expires=Thu, 01 Jan 1970 00:00:00 UTC;path=/;`;
}

在这个示例中,我们定义了一个名为setCookie的函数,该函数接受三个参数:cookie名称、cookie值和cookie过期时间。在函数中,我们创建了一个新的Date对象并计算出Cookie的过期日期,并指定了该Cookie可见性的路径。最后,我们在document.cookie上设置这个cookie。

getCookie函数被用来读取一个特定名称的Cookie。它首先检查当前浏览器会话中是否存在Cookie,并使用split()方法将document.cookie字符串分离为Cookie数组。然后在循环整个数组中,查找与输入的Cookie名称相同的Cookie。如果找到了,则函数返回该Cookie的值。

deleteCookie函数的工作原理与setCookie类似,但它将expires设置为1970年1月1日以过期并删除特定的Cookie。

这个示例代码展示了如何使用Cookie存储和读取用户首选项和其他数据等常见的用途。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS前端操作 Cookie源码示例解析 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • JS获取字符串实际长度(包含汉字)的简单方法

    要获取字符串实际长度(包含汉字),必须考虑到汉字所占的长度和编码,下面详细介绍一下获取字符串实际长度的方法。 方法一:使用正则表达式和charCodeAt()方法计算汉字转义编码长度 该方法使用正则表达式以及charCodeAt()方法来获取字符串的实际长度,步骤如下: 定义一个字符串变量,比如str,用于存储待处理的字符串。 初始化2个计数器,cbis:字…

    JavaScript 2023年5月28日
    00
  • 使用GruntJS构建Web程序之构建篇

    关于“使用GruntJS构建Web程序之构建篇”的完整攻略,我将分为以下几个步骤进行讲解。 1. 安装GruntJS 首先,我们需要在本地安装GruntJS。可以使用npm命令进行安装,确保已经安装Node.js环境。 npm install -g grunt-cli 2. 安装Grunt插件 接下来,我们需要安装Grunt插件,以便于使用Grunt构建我们…

    JavaScript 2023年5月28日
    00
  • JS实现去除数组中重复json的方法示例

    当我们处理包含多个json对象的数组数据时,可能需要将重复的json对象去重,以免造成数据混乱。以下是JS实现去除数组中重复json对象的方法示例及详细步骤: 方法一:使用Array.prototype.filter()和JSON.stringify() const arr = [{name: ‘Alice’, age: 23}, {name: ‘Bob’,…

    JavaScript 2023年6月11日
    00
  • js实现时间显示几天前、几小时前或者几分钟前的方法集锦

    实现时间显示几天前、几小时前或者几分钟前的方法,在前端开发中是比较常见的需求之一,下面我们来讲解一下相关的实现技巧和方法。 方法一:利用Moment.js库实现 Moment.js是一个便捷的日期处理类库,可以帮助我们轻松地完成日期和时间的格式化、解析和计算等操作。在基于Moment.js库实现的时间显示几天前、几小时前或者几分钟前的方法中,我们可以使用其巨…

    JavaScript 2023年5月27日
    00
  • JS中type=”button”和type=”submit”的区别

    首先我们需要了解这两个type属性的含义以及它们在JavaScript中的作用。 type=”button”:该按钮不会提交表单,它只是一个普通的按钮,可以在点击按钮时执行JavaScript代码。 type=”submit”:该按钮会提交表单并刷新页面,用于将表单数据传递给服务器。 因此,这两个type属性的最大区别是是否会将表单数据提交至服务器。 我们来…

    JavaScript 2023年6月11日
    00
  • 浅谈android nexus私服的使用

    浅谈 Android Nexus 私服的使用 引言 随着 Android 开发的不断深入,项目迭代的频率也越来越快。然而,每当你切换一个项目或者重构项目时,你需要重新从互联网下载和安装所有的依赖项,这是一件非常耗时的事情。尤其是在国内网络环境下,从 Maven 中央仓库下载依赖会非常慢而且不稳定。 为了解决这个问题,很多公司都建立了自己的 Nexus 私服来…

    JavaScript 2023年5月28日
    00
  • 在javascript中随机数 math random如何生成指定范围数值的随机数

    首先需要了解 Math.random() 方法可以生成一个在0(包含0)到1(不包括1)之间的一个伪随机数。要生成指定范围内的随机数,需要通过一些计算和转换来实现。以下是一些可能的做法: 做法一:生成任意两数之间的随机数 可以先生成一个在0到1之间的随机小数,然后将其乘以两个数的范围,再加上较小的数,从而实现生成任意两数之间的随机数。 function ra…

    JavaScript 2023年6月10日
    00
  • javascript字符串与数组转换汇总

    JavaScript字符串与数组转换汇总 在JavaScript中,字符串和数组是我们常用的数据类型之一。但是,在实际的工程中可能需要字符串和数组之间进行转换,这时候就需要借助一些强大的转换方法来实现。这里我们集中介绍一下JavaScript字符串与数组转换的方法以及使用场景。 1. 字符串转换为数组 字符串转换为数组通常采用以下方法: 1.1 split(…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部