javascript实现设置、获取和删除Cookie的方法

yizhihongxing

下面是关于“JavaScript实现设置、获取和删除Cookie的方法”的完整攻略。

设置Cookie

Cookie是HTTP协议提供的一种状态管理机制。可以通过JS设置Cookie来在浏览器端存储一些信息。在JavaScript中,设置Cookie主要包括三个步骤:

  1. 将需要存储的数据转换为字符串格式。
  2. 将存储字符串写入Cookie。
  3. 设置Cookie的过期时间。

下面是实现设置Cookie的方法:

function setCookie(name, value, expires) {
  let cookieText = encodeURIComponent(name) + '=' + encodeURIComponent(value);

  if (expires instanceof Date) {
    cookieText += '; expires=' + expires.toUTCString();
  }

  document.cookie = cookieText;
}

函数setCookie()有三个参数,分别是Cookie的名称、值和过期时间。变量cookieText保存着需要写入Cookie的字符串。如果过期时间是Date对象的实例,那么通过toUTCString()方法将其转换为UTC格式并加入到cookieText中。最后,将cookieText设置为document.cookie。下面是一些示例代码来说明如何使用setCookie()函数设置一个Cookie:

setCookie('username', 'bob', new Date(Date.now() + 30 * 24 * 3600 * 1000)); // 设置名为username的Cookie,值为bob,过期时间为30天之后。

setCookie('score', '90', new Date(Date.now() + 365 * 24 * 3600 * 1000)); // 设置名为score的Cookie,值为90,过期时间为一年之后。

获取Cookie

在JavaScript中,获取Cookie包含两个步骤:

  1. 获取所有cookies
  2. 解析指定的cookie

下面是实现获取Cookie的方法:

function getCookie(name) {
  let cookies = document.cookie.split(';');

  for (let i = 0; i < cookies.length; i++) {
    let cookie = cookies[i].trim();
    let eqIdx = cookie.indexOf('=');
    let cookieName = cookie.substring(0, eqIdx);

    if (cookieName === name) {
      return decodeURIComponent(cookie.substring(eqIdx + 1));
    }
  }

  return undefined;
}

函数getCookie()有一个参数,分别是Cookie的名称。在函数体内部,我们首先使用split()函数把文档cookie分割成一个cookie数组,然后对所有的cookie进行遍历。在每个cookie内部,通过indexOf()查找cookie名称的位置,并解析出cookie的值。如果找到匹配的Cookie,则使用decodeURIComponent()将其编码设置为字符串并返回,否则返回undefined。下面是一个调用getCookie()函数并打印结果的例子:

console.log(getCookie('username')); // 打印Cookie "username" 的值。

let score = getCookie('score');
if(score) {
  console.log(parseInt(score) + 10); // 将Cookie "score" 的值转为整数并打印。
}

删除Cookie

删除Cookie的方法很简单,只需要将Cookie的过期时间设置为一个以前的时间即可。下面是实现删除Cookie的方法:

function deleteCookie(name) {
  let expires = new Date(Date.now() - 1); // 过期时间设置为1ms之前。
  document.cookie = name + '=; expires=' + expires.toUTCString(); // 通过将过期时间设置为过去时间来删除Cookie。
}

函数deleteCookie()有一个参数,分别是Cookie的名称。在函数体内部,我们创建一个过期时间为1ms之前的Date实例,然后将Cookie的名称和过期时间拼接起来以删除该Cookie。下面是实例代码来说明如何删除一个Cookie:

deleteCookie('username'); // 删除名称为username的Cookie
deleteCookie('score'); // 删除名称为score的Cookie

这就是JavaScript实现设置、获取和删除Cookie的方法的完整攻略。希望对你有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript实现设置、获取和删除Cookie的方法 - Python技术站

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

相关文章

  • JavaScript正则表达式实现注册信息校验功能

    下面是详细的JavaScript正则表达式实现注册信息校验功能的攻略。 什么是正则表达式? 正则表达式是用于描述文本模式的方法。它被广泛用于搜索、替换、验证文本,并且非常强大、灵活。 正则表达式的基本规则 在正则表达式中,所有非特殊字符都表示它本身。特殊字符则有不同的含义,用于描述匹配的规则。例如: ^:起始位置 $:结束位置 .:任意字符 *:表示匹配前面…

    JavaScript 2023年6月10日
    00
  • Javascript中的var_dump函数实现代码

    对于Javascript而言,并没有var_dump这个函数。通常情况下,我们可以使用console.log来输出变量的值和类型。 如果想要模拟PHP的var_dump函数,可以参照以下代码: function var_dump(obj) { var result = ”; for (var i in obj) { result += i + ‘: ‘ +…

    JavaScript 2023年6月11日
    00
  • jquery获取url参数及url加参数的方法

    jQuery获取URL参数的方法 在jQuery中,可以使用以下代码来获取URL中的参数: function getQueryVariable(variable) { var query = window.location.search.substring(1); var vars = query.split("&"); for …

    JavaScript 2023年5月19日
    00
  • 仅9张思维导图帮你轻松学习Javascript 就这么简单

    标题:使用思维导图轻松学习JavaScript 引言 JavaScript是Web前端开发的重要组成部分,也是现代web应用开发必备的技能之一。然而,JavaScript语言本身比较复杂,想要学习掌握JavaScript并不容易。本文借助思维导图的方式,帮助读者快速掌握JavaScript。 思维导图学习法 思维导图是常用的学习工具,它可以帮助人们快速理清知…

    JavaScript 2023年6月10日
    00
  • 使用requestAnimationFrame实现js动画性能好

    使用requestAnimationFrame实现js动画的优点是可以避免过多使用setTimeout或setInterval造成的页面卡顿、CPU过度占用等问题,从而保证动画的流畅度和性能。以下是具体操作步骤: 准备工作 首先需要在代码中声明一个全局变量 requestId 用于记录动画的请求ID。然后编写动画函数,此函数需要接收一个时间参数。 let r…

    JavaScript 2023年6月10日
    00
  • JavaScript类型检测之typeof 和 instanceof 的缺陷与优化

    JavaScript类型检测之typeof 和 instanceof 的缺陷与优化 typeof的缺陷 在JavaScript中,typeof操作符用于检测一个变量或表达式的数据类型,返回一个字符串常量。 typeof variable typeof操作符返回的结果只有一下几种: “undefined”: 如果变量没有被赋值或者值为undefined “bo…

    JavaScript 2023年6月10日
    00
  • vue3中路由传参query、params及动态路由传参详解

    针对vue3中的路由传参query、params及动态路由传参,我来为大家做一份详细的攻略。 一、前置知识 Vue-router Vue提供了一款官方的路由插件Vue-router,可以方便的实现SPA应用的路由管理。若未安装Vue-router,可以通过以下命令进行安装: npm install vue-router 动态路由 动态路由是 vue-rout…

    JavaScript 2023年6月11日
    00
  • 深入浅析JavaScript的API设计原则

    深入浅析JavaScript的API设计原则 在JavaScript的编程中,API设计扮演了非常重要的角色。一个优秀的API可以让开发者方便使用并且提高代码的可读性和可维护性。本文将详细讲解JavaScript API设计的原则,并提供两条示例来说明。 原则1:一致性 API的一致性是非常重要的。相似的功能应该采用相似的命名和用法。这样可以让开发者对API…

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