js -cookie的操作

简介: cookie是存储在客户端浏览器中的一段文本信息。
  1. cookie是存储在客户端浏览器中的一段文本信息。
  2. 每一个 HTTP 请求都会在请求头中携带 cookie 到服务端
  3. 每一个 HTTP 响应都会在响应头中携带 cookie 到客户端

cookie的特点

  1. 存储大小有限制,一般是 4 KB 左右
  2. 数量有限制,一般是 50 条左右
  3. 有时效性,也就是有过期时间,一般是 会话级别(也就是浏览器关闭就过期了)
  4. 有域名限制,也就是说谁设置的谁才能读取
  5. 存在风险

cookie的创建

document.cookie = 'key=value;expires=日期对象;path=路径;domain=域名;secure'

  1. 浏览器不识别的编码问题
    1. 编码:encodeURIComponent()
    2. 解码:decodeURIComponent()
  下面是一个简单的封装函数,用于设置、获取和删除 Cookie:

javascript
// 设置 Cookie
function setCookie(name, value, expires, path) {
  var cookieString = name + '=' + encodeURIComponent(value);

  if (expires) {
    var date = new Date();
    date.setTime(date.getTime() + (expires * 24 * 60 * 60 * 1000));
    cookieString += '; expires=' + date.toUTCString();
  }

  if (path) {
    cookieString += '; path=' + path;
  }

  document.cookie = cookieString;
}

// 获取 Cookie
function getCookie(name) {
  var cookieName = name + '=';
  var cookies = document.cookie.split(';');

  for (var i = 0; i < cookies.length; i++) {
    var cookie = cookies[i].trim();

    if (cookie.indexOf(cookieName) === 0) {
      return decodeURIComponent(cookie.substring(cookieName.length));
    }
  }

  return null;
}

// 删除 Cookie
function deleteCookie(name) {
  setCookie(name, '', -1);
}
使用示例:

javascript
// 设置 Cookie
setCookie('username', 'john', 7, '/');

// 获取 Cookie
var username = getCookie('username');
console.log('Username:', username);

// 删除 Cookie
deleteCookie('username');
这个封装函数提供了 setCookie()、getCookie() 和 deleteCookie() 三个函数来进行 Cookie 的设置、获取和删除操作。

setCookie(name, value, expires, path): 设置 Cookie。name 是要设置的 Cookie 名称,value 是要设置的 Cookie 值,expires 是可选参数,表示 Cookie 的过期时间(以天为单位),path 是可选参数,表示可访问该 Cookie 的路径,默认为根目录。

getCookie(name): 获取 Cookie。name 是要获取的 Cookie 名称,返回获取到的 Cookie 值,如果找不到则返回 null。

deleteCookie(name): 删除 Cookie。name 是要删除的 Cookie 名称,将该 Cookie 的值设置为空字符串,并将过期时间设置为过去的时间。

使用这些封装函数可以方便地进行 Cookie 的操作,包括设置、获取和删除。
相关文章
|
15天前
|
存储 前端开发 JavaScript
揭秘!JavaScript本地存储的四大绝技:从Cookie到IndexedDB,让你的Web应用秒变数据存储高手,轻松应对各种挑战!
【8月更文挑战第4天】JavaScript为核心前端技术,提供多样本地存储方案以优化用户体验与减少服务器负载。首先,Cookie虽用于基本数据如登录状态,但受大小限制及安全性影响。接着,Web Storage中的LocalStorage持久存储不变数据,SessionStorage则限于单次会话。更进一步,IndexedDB作为全面数据库解决方案,支持复杂数据操作但使用较复杂。每种方式根据应用需求各有优势。
34 9
|
1月前
|
JavaScript 前端开发 索引
JavaScript编码之路 【JavaScript之操作数组、字符串方法汇总】(三)
JavaScript编码之路 【JavaScript之操作数组、字符串方法汇总】(三)
30 1
|
1月前
|
存储 JavaScript 前端开发
js/javascript 操作字符串【全】(含常用的操作字符串的lodash)
js/javascript 操作字符串【全】(含常用的操作字符串的lodash)
21 1
|
2月前
|
JavaScript vr&ar 数据库
技术笔记:Js获取当前日期时间及其它操作
技术笔记:Js获取当前日期时间及其它操作
27 1
|
2月前
|
存储 前端开发 JavaScript
回调函数是JavaScript中处理异步编程的常见模式,常用于事件驱动和I/O操作。
【6月更文挑战第27天】回调函数是JavaScript中处理异步编程的常见模式,常用于事件驱动和I/O操作。它作为参数传递给其他函数,在特定条件满足或任务完成后被调用。例如,`asyncOperation`函数接受回调函数`handleResult`,模拟异步操作后,调用`handleResult`传递结果。这样,当异步任务完成时,`handleResult`负责处理结果。
21 1
|
2月前
|
存储 JavaScript 前端开发
JavaScript中的数组是核心数据结构,用于存储和操作序列数据
【6月更文挑战第22天】JavaScript中的数组是核心数据结构,用于存储和操作序列数据。创建数组可以使用字面量`[]`或`new Array()`。访问元素通过索引,如`myArray[0]`,修改同样如此。常见方法包括:`push()`添加元素至末尾,`pop()`移除末尾元素,`shift()`移除首元素,`unshift()`添加到开头,`join()`连接为字符串,`slice()`提取子数组,`splice()`进行删除、替换,`indexOf()`查找元素位置,`sort()`排序数组。还有其他如`reverse()`、`concat()`等方法。
122 2
|
1月前
|
存储 Web App开发 JavaScript
浏览器【详解】Cookie(含Cookie的起源,属性,个数和大小限制,作用,优点,缺点,JS 的操作方法等)
浏览器【详解】Cookie(含Cookie的起源,属性,个数和大小限制,作用,优点,缺点,JS 的操作方法等)
42 0
|
1月前
|
JavaScript 前端开发 索引
JavaScript编码之路 【JavaScript之操作数组、字符串方法汇总】(一)
JavaScript编码之路 【JavaScript之操作数组、字符串方法汇总】(一)
24 0
|
1月前
|
存储 JavaScript 前端开发
JavaScript编码之路 【JavaScript之操作数组、字符串方法汇总】(二)
JavaScript编码之路 【JavaScript之操作数组、字符串方法汇总】(二)
18 0
|
1月前
|
JavaScript 前端开发
js/javascript 操作对象【全】(含常用的操作对象的lodash)
js/javascript 操作对象【全】(含常用的操作对象的lodash)
16 0