js读写cookie相关的代码类封装和函数,并加上中文注释,给出100个实例
- 设置 cookie
javascript/**
* 设置 cookie
* @param {string} name cookie 名称
* @param {string} value cookie 值
* @param {number} days cookie 有效天数
*/
function setCookie(name, value, days) {
let expires = '';
if (days) {
let date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = `; expires=${date.toUTCString()}`;
}
document.cookie = `${name}=${value}${expires}; path=/`;
}
- 获取 cookie
javascript/**
* 获取 cookie
* @param {string} name cookie 名称
* @return {string|null} cookie 值,如果不存在则返回 null
*/
function getCookie(name) {
let cookieName = `${name}=`;
let cookieArray = document.cookie.split(';');
for (let i = 0; i < cookieArray.length; i++) {
let cookie = cookieArray[i].trim();
if (cookie.indexOf(cookieName) === 0) {
return cookie.substring(cookieName.length, cookie.length);
}
}
return null;
}
- 删除 cookie
javascript/**
* 删除 cookie
* @param {string} name cookie 名称
*/
function deleteCookie(name) {
document.cookie = `${name}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`;
}
- 设置 cookie,有效期为 1 小时
javascriptsetCookie('name', 'value', 1/24);
- 获取 cookie 名称为 name 的值
javascriptlet value = getCookie('name');
- 删除 cookie 名称为 name 的值
javascriptdeleteCookie('name');
- 设置 cookie,有效期为 7 天
javascriptsetCookie('name', 'value', 7);
- 获取当前域名下所有的 cookie
javascriptlet cookies = document.cookie.split(';');
- 获取当前域名下所有的 cookie 名称
javascriptlet cookieNames = cookies.map((cookie) => cookie.split('=')[0].trim());
- 获取当前域名下所有的 cookie 值
javascriptlet cookieValues = cookies.map((cookie) => cookie.split('=')[1].trim());
- 获取当前域名下所有的 cookie 名称和值
javascriptlet cookieMap = {};
cookies.forEach((cookie) => {
let [name, value] = cookie.split('=');
cookieMap[name.trim()] = value.trim();
});
- 设置 cookie,有效期为 30 分钟
javascriptsetCookie('name', 'value', 1/48);
- 获取 cookie 名称为 age 的值
javascriptlet age = parseInt(getCookie('age'));
- 删除 cookie 名称为 age 的值
javascriptdeleteCookie('age');
- 设置 cookie,有效期为 1 年
javascriptsetCookie('name', 'value', 365);
- 获取当前域名下所有的 cookie 名称和值的数组
javascriptlet cookieArray = cookies.map((cookie) => {
let [name, value] = cookie.split('=');
return { name: name.trim(), value: value.trim() };
});
- 获取 cookie 名称为 name 的值,如果不存在则返回默认值
javascriptlet name = getCookie('name') || 'default';
- 删除所有 cookie
javascriptcookies.forEach((cookie) => {
let [name] = cookie.split('=');
deleteCookie(name.trim());
});
- 设置 cookie,有效期为 1 小时,作用域为指定的路径
javascriptsetCookie('name', 'value', 1/24, '/path');
- 获取当前路径下所有的 cookie 名称和值的对象
javascriptlet cookieObject = {};
cookies.forEach((cookie) => {
let [name, value] = cookie.split('=');
if (cookie.indexOf('/path') !== -1) {
cookieObject[name.trim()] = value.trim();
}
});
- 设置 cookie,有效期为 30 分钟,作用域为指定的路径
javascriptsetCookie('name', 'value', 1/48, '/path');
- 获取 cookie 名称为 age 的值,如果不存在则返回默认值 18
javascriptlet age = parseInt(getCookie('age') || 18);
- 删除所有指定路径下的 cookie
javascriptcookies.forEach((cookie) => {
let [name] = cookie.split('=');
if (cookie.indexOf('/path') !== -1) {
deleteCookie(name.trim());
}
});
- 设置 cookie,有效期为 1 年,作用域为指定的路径
javascriptsetCookie('name', 'value', 365, '/path');
- 获取当前路径下所有的 cookie 名称和值的数组
javascriptlet cookieArray = cookies.filter((cookie) => cookie.indexOf('/path') !== -1).map((cookie) => {
let [name, value] = cookie.split('=');
return { name: name.trim(), value: value.trim() };
});
- 设置 cookie,有效期为 1 小时,作用域为指定的域名
javascriptsetCookie('name', 'value', 1/24, '/', '.example.com');
- 获取当前域名下所有的 cookie 名称和值的对象
javascriptlet cookieObject = {};
cookies.forEach((cookie) => {
let [name, value] = cookie.split('=');
if (cookie.indexOf('.example.com') !== -1) {
cookieObject[name.trim()] = value.trim();
}
});
- 设置 cookie,有效期为 30 分钟,作用域为指定的域名
javascriptsetCookie('name', 'value', 1/48, '/', '.example.com');
- 获取 cookie 名称为 age 的值,如果不存在则返回默认值 18
javascriptlet age = parseInt(getCookie('age') || 18);
- 删除所有指定域名下的 cookie
javascriptcookies.forEach((cookie) => {
let [name] = cookie.split('=');
if (cookie.indexOf('.example.com') !== -1) {
deleteCookie(name.trim());
}
});
- 设置 cookie,有效期为 1 年,作用域为指定的域名
javascriptsetCookie('name', 'value', 365, '/', '.example.com');
- 获取当前域名下所有的 cookie 名称和值的数组
javascriptlet cookieArray = cookies.filter((cookie) => cookie.indexOf('.example.com') !== -1).map((cookie) => {
let [name, value] = cookie.split('=');
return { name: name.trim(), value: value.trim() };
});
- 设置 cookie,有效期为 1 小时,作用域为指定的子路径
javascriptsetCookie('name', 'value', 1/24, '/path/subpath');
- 获取当前子路径下所有的 cookie 名称和值的对象
javascriptlet cookieObject = {};
cookies.forEach((cookie) => {
let [name, value] = cookie.split('=');
if (cookie.indexOf('/path/subpath') !== -1) {
cookieObject[name.trim()] = value.trim();
}
});
- 设置 cookie,有效期为 30 分钟,作用域为指定的子路径
javascriptsetCookie('name', 'value', 1/48, '/path/subpath');
- 获取 cookie 名称为 age 的值,如果不存在则返回默认值 18
javascriptlet age = parseInt(getCookie('age') || 18);
- 删除所有指定子路径下的 cookie
javascriptcookies.forEach((cookie) => {
let [name] = cookie.split('=');
if (cookie.indexOf('/path/subpath') !== -1) {
deleteCookie(name.trim());
}
});
- 设置 cookie,有效期为 1 年,作用域为指定的子路径
javascriptsetCookie('name', 'value', 365, '/path/subpath');
- 获取当前子路径下所有的 cookie 名称和值的数组
javascriptlet cookieArray = cookies.filter((cookie) => cookie.indexOf('/path/subpath') !== -1).map((cookie) => {
let [name, value] = cookie.split('=');
return { name: name.trim(), value: value.trim() };
});
- 设置 cookie,有效期为 1 小时,作用域为指定的子域名
javascriptsetCookie('name', 'value', 1/24, '/', 'subdomain.example.com');
- 获取当前子域名下所有的 cookie 名称和值的对象
javascriptlet cookieObject = {};
cookies.forEach((cookie) => {
let [name, value] = cookie.split('=');
if (cookie.indexOf('subdomain.example.com') !== -1) {
cookieObject[name.trim()] = value.trim();
}
});
- 设置 cookie,有效期为 30 分钟,作用域为指定的子域名
javascriptsetCookie('name', 'value', 1/48, '/', 'subdomain.example.com');
- 获取 cookie 名称为 age 的值,如果不存在则返回默认值 18
javascriptlet age = parseInt(getCookie('age') || 18);
- 删除所有指定子域名下的 cookie
javascriptcookies.forEach((cookie) => {
let [name] = cookie.split('=');
if (cookie.indexOf('subdomain.example.com') !== -1) {
deleteCookie(name.trim());
}
});
- 设置 cookie,有效期为 1 年,作用域为指定的子域名
javascriptsetCookie('name', 'value', 365, '/', 'subdomain.example.com');
- 获取当前子域名下所有的 cookie 名称和值的数组
javascriptlet cookieArray = cookies.filter((cookie) => cookie.indexOf('subdomain.example.com') !== -1).map((cookie) => {
let [name, value] = cookie.split('=');
return { name: name.trim(), value: value.trim() };
});
- 设置 cookie,有效期为 1 小时,作用域为指定的端口号
javascriptsetCookie('name', 'value', 1/24, '/', '', 8080);
- 获取当前端口号下所有的 cookie 名称和值的对象
javascriptlet cookieObject = {};
cookies.forEach((cookie) => {
let [name, value] = cookie.split('=');
if (cookie.indexOf(':8080') !== -1) {
cookieObject[name.trim()] = value.trim();
}
});
- 设置 cookie,有效期为 30 分钟,作用域为指定的端口号
javascriptsetCookie('name', 'value', 1/48, '/', '', 8080);
- 获取 cookie 名称为 age 的值,如果不存在则返回默认值 18
javascriptlet age = parseInt(getCookie('age') || 18);
- 删除所有指定端口号下的 cookie
javascriptcookies.forEach((cookie) => {
let [name] = cookie.split('=');
if (cookie.indexOf(':8080') !== -1) {
deleteCookie(name.trim());
}
});
- 设置 cookie,有效期为 1 年,作用域为指定的端口号
javascriptsetCookie('name', 'value', 365, '/', '', 8080);
- 获取当前端口号下所有的 cookie 名称和值的数组
javascriptlet cookieArray = cookies.filter((cookie) => cookie.indexOf(':8080') !== -1).map((cookie) => {
let [name, value] = cookie.split('=');
return { name: name.trim(), value: value.trim() };
});
- 设置 cookie,有效期为 1 小时,作用域为指定的协议
javascriptsetCookie('name', 'value', 1/24, '/', '', '', true);
- 获取当前协议下所有的 cookie 名称和值的对象
javascriptlet cookieObject = {};
cookies.forEach((cookie) => {
let [name, value] = cookie.split('=');
if (cookie.indexOf('https') !== -1) {
cookieObject[name.trim()] = value.trim();
}
});
- 设置 cookie,有效期为 30 分钟,作用域为指定的协议
javascriptsetCookie('name', 'value', 1/48, '/', '', '', true);
- 获取 cookie 名称为 age 的值,如果不存在则返回默认值 18
javascriptlet age = parseInt(getCookie('age') || 18);
- 删除所有指定协议下的 cookie
javascriptcookies.forEach((cookie) => {
let [name] = cookie.split('=');
if (cookie.indexOf('https') !== -1) {
deleteCookie(name.trim());
}
});
- 设置 cookie,有效期为 1 年,作用域为指定的协议
javascriptsetCookie('name', 'value', 365, '/', '', '', true);
- 获取当前协议下所有的 cookie 名称和值的数组
javascriptlet cookieArray = cookies.filter((cookie) => cookie.indexOf('https') !== -1).map((cookie) => {
let [name, value] = cookie.split('=');
return { name: name.trim(), value: value.trim() };
});
- 设置 cookie,有效期为 1 小时,作用域为指定的域名、路径、子域名、端口号和协议
javascriptsetCookie('name', 'value', 1/24, '/path/subpath', 'subdomain.example.com', 8080, true);
- 获取当前作用域下所有的 cookie 名称和值的对象
javascriptlet cookieObject = {};
cookies.forEach((cookie) => {
let [name, value] = cookie.split('=');
if (cookie.indexOf('subdomain.example.com') !== -1 && cookie.indexOf('/path/subpath') !== -1 && cookie.indexOf(':8080') !== -1 && cookie.indexOf('https') !== -1) {
cookieObject[name.trim()] = value.trim();
}
});
- 设置 cookie,有效期为 30 分钟,作用域为指定的域名、路径、子域名、端口号和协议
javascriptsetCookie('name', 'value', 1/48, '/path/subpath', 'subdomain.example.com', 8080, true);
- 获取 cookie 名称为 age 的值,如果不存在则返回默认值 18
javascriptlet age = parseInt(getCookie('age') || 18);
- 删除所有指定作用域下的 cookie
javascriptcookies.forEach((cookie) => {
let [name] = cookie.split('=');
if (cookie.indexOf('subdomain.example.com') !== -1 && cookie.indexOf('/path/subpath') !== -1 && cookie.indexOf(':8080') !== -1 && cookie.indexOf('https') !== -1) {
deleteCookie(name.trim());
}
});
- 设置 cookie,有效期为 1 ���,作用域为指定的域名、路径、子域名、端口号和协议
javascriptsetCookie('name', 'value', 365, '/path/subpath', 'subdomain.example.com', 8080, true);
- 获取当前作用域下所有的 cookie 名称和值的数组
javascriptlet cookieArray = cookies.filter((cookie) => cookie.indexOf('subdomain.example.com') !== -1 && cookie.indexOf('/path/subpath') !== -1 && cookie.indexOf(':8080') !== -1 && cookie.indexOf('https') !== -1).map((cookie) => {
let [name, value] = cookie.split('=');
return { name: name.trim(), value: value.trim() };
});
- 设置 cookie,有效期为 1 小时,作用域为指定的域名、路径、子域名、端口号和协议,并设置 HttpOnly 属性
javascriptsetCookie('name', 'value', 1/24, '/path/subpath', 'subdomain.example.com', 8080, true, true);
- 获取当前作用域下所有的 cookie 名称和值的对象
javascriptlet cookieObject = {};
cookies.forEach((cookie) => {
let [name, value] = cookie.split('=');
if (cookie.indexOf('subdomain.example.com') !== -1 && cookie.indexOf('/path/subpath') !== -1 && cookie.indexOf(':8080') !== -1 && cookie.indexOf('https') !== -1 && cookie.indexOf('HttpOnly') !== -1) {
cookieObject[name.trim()] = value.trim();
}
});
- 设置 cookie,有效期为 30 分钟,作用域为指定的域名、路径、子域名、端口号和协议,并设置 HttpOnly 属性
javascriptsetCookie('name', 'value', 1/48, '/path/subpath', 'subdomain.example.com', 8080, true, true);
- 获取 cookie 名称为 age 的值,如果不存在则返回默认值 18
javascriptlet age = parseInt(getCookie('age') || 18);