主页
  • 主页
  • 分类
  • 热文
  • 教程
  • 面试
  • 标签
JavaScript

JavaScript 基础

JavaScript 主页
JavaScript 概述
JavaScript 特性
JavaScript 启用
JavaScript 展示位置
JavaScript 语法
JavaScript hello_world
JavaScript console.log()
JavaScript 注释
JavaScript 变量
JavaScript let 语句
JavaScript 常量
JavaScript 数据类型
JavaScript 类型转换
JavaScript 严格模式
JavaScript 保留关键字

JavaScript 操作符

JavaScript 操作符
JavaScript 算术运算符
JavaScript 比较操作符
JavaScript 逻辑运算符
JavaScript 位运算符
JavaScript 赋值运算符
JavaScript 条件运算符
JavaScript typeof 运算符
JavaScript Nullish 合并运算符
JavaScript delete 运算符
JavaScript 逗号运算符
JavaScript 分组运算符
JavaScript Yield 运算符
JavaScript 扩展运算符
JavaScript 指数运算符
JavaScript 运算符优先级

JavaScript 控制流

JavaScript if...else 语句
JavaScript while 循环
JavaScript for 循环
JavaScript for...in 循环
JavaScript for...of 循环
JavaScript 循环控制
JavaScript break 语句
JavaScript continue 语句
JavaScript switch 语句
JavaScript 可迭代对象

JavaScript 函数

JavaScript 函数
JavaScript 函数表达式
JavaScript 函数参数和参数值
JavaScript 默认参数
JavaScript Function() 构造函数
JavaScript 函数提升
JavaScript 自执行函数
JavaScript 箭头函数
JavaScript 函数调用
JavaScript call() 方法
JavaScript apply() 方法
JavaScript bind() 方法
JavaScript 闭包
JavaScript 作用域
JavaScript 全局变量
JavaScript 智能函数参数

JavaScript 对象

JavaScript Number 对象
JavaScript Boolean 对象
JavaScript String 对象
JavaScript 数组对象
JavaScript 日期对象
JavaScript DataView 对象
JavaScript 处理程序
JavaScript Math 对象
JavaScript 正则表达式
JavaScript Symbol 类型
JavaScript Set 对象
JavaScript WeakSet 对象
JavaScript Map 对象
JavaScript WeakMap 对象
JavaScript 可迭代对象
JavaScript Reflect 对象
JavaScript TypedArray
JavaScript 模板字面量
JavaScript 标记模板

JavaScript 面向对象

JavaScript 对象
JavaScript 类
JavaScript 对象属性
JavaScript 对象方法
JavaScript 静态方法
JavaScript 显示对象
JavaScript 对象访问器属性
JavaScript 对象构造器
JavaScript 原型(Prototype)
JavaScript ES5 对象方法
JavaScript 封装
JavaScript 继承
JavaScript 抽象
JavaScript 多态
JavaScript 解构赋值
JavaScript 数组解构
JavaScript 嵌套解构
JavaScript 可选链
JavaScript 全局对象
JavaScript mixins
JavaScript 代理(Proxy)

JavaScript Cookies

JavaScript Cookies操作
JavaScript Cookie 属性
JavaScript 删除 Cookies

JavaScript 浏览器 BOM

JavaScript 浏览器对象模型(BOM)
JavaScript 窗口对象
JavaScript Document 对象
JavaScript 屏幕对象
JavaScript Window History 对象
JavaScript Navigator 对象
JavaScript Location 对象
JavaScript Console 对象

JavaScript Web APIs

JavaScript Web API
JavaScript History API
JavaScript 存储 API
JavaScript Forms API
JavaScript Worker API
JavaScript Fetch API
JavaScript 定位 API

JavaScript 事件

JavaScript 事件
JavaScript DOM 事件
JavaScript addEventListener()
JavaScript 鼠标事件
JavaScript 键盘事件
JavaScript 表单事件
JavaScript 窗口事件
JavaScript 事件委托
JavaScript 事件冒泡
JavaScript 事件捕获
JavaScript 自定义事件

JavaScript 错误处理

JavaScript 错误处理
JavaScript try-catch
JavaScript 调试
JavaScript 自定义错误
JavaScript 扩展错误

JavaScript 重要关键字

JavaScript this'关键字
JavaScript void 关键字
JavaScript new 关键字
JavaScript var 关键字

JavaScript HTML DOM

JavaScript HTML DOM
JavaScript DOM 方法
JavaScript 文档对象
JavaScript DOM 元素
JavaScript 文档表单
JavaScript 更改 HTML
JavaScript 更改 CSS
JavaScript DOM 动画
JavaScript DOM 导航
JavaScript DOM 集合
JavaScript 节点列表

JavaScript 杂项

JavaScript Ajax
JavaScript 异步迭代
JavaScript Atomics 对象
JavaScript 剩余参数
JavaScript 页面重定向
JavaScript 对话框
JavaScript 打印网页
JavaScript 表单验证
JavaScript 创建动画
JavaScript 多媒体
JavaScript 图像地图
JavaScript 浏览器兼容性
JavaScript JSON
JavaScript 多行字符串
JavaScript 浅拷贝
JavaScript 日期格式
JavaScript 获取日期方法
JavaScript 调用栈
JavaScript 引用类型
JavaScript 设置日期方法
JavaScript 模块
JavaScript IndexedDB
JavaScript clickjacking(点击劫持)
JavaScript 动态导入
JavaScript BigInt
JavaScript 柯里化(Currying)
JavaScript 图形库
JavaScript Blob
JavaScript Unicode
JavaScript 绘制图形
JavaScript 防抖
JavaScript 性能
JavaScript 编码规范

基础

JavaScript 主页
JavaScript 概述
JavaScript 特性
JavaScript 启用
JavaScript 展示位置
JavaScript 语法
JavaScript hello_world
JavaScript console.log()
JavaScript 注释
JavaScript 变量
JavaScript let 语句
JavaScript 常量
JavaScript 数据类型
JavaScript 类型转换
JavaScript 严格模式
JavaScript 保留关键字

操作符

JavaScript 操作符
JavaScript 算术运算符
JavaScript 比较操作符
JavaScript 逻辑运算符
JavaScript 位运算符
JavaScript 赋值运算符
JavaScript 条件运算符
JavaScript typeof 运算符
JavaScript Nullish 合并运算符
JavaScript delete 运算符
JavaScript 逗号运算符
JavaScript 分组运算符
JavaScript Yield 运算符
JavaScript 扩展运算符
JavaScript 指数运算符
JavaScript 运算符优先级

控制流

JavaScript if...else 语句
JavaScript while 循环
JavaScript for 循环
JavaScript for...in 循环
JavaScript for...of 循环
JavaScript 循环控制
JavaScript break 语句
JavaScript continue 语句
JavaScript switch 语句
JavaScript 可迭代对象

函数

JavaScript 函数
JavaScript 函数表达式
JavaScript 函数参数和参数值
JavaScript 默认参数
JavaScript Function() 构造函数
JavaScript 函数提升
JavaScript 自执行函数
JavaScript 箭头函数
JavaScript 函数调用
JavaScript call() 方法
JavaScript apply() 方法
JavaScript bind() 方法
JavaScript 闭包
JavaScript 作用域
JavaScript 全局变量
JavaScript 智能函数参数

对象

JavaScript Number 对象
JavaScript Boolean 对象
JavaScript String 对象
JavaScript 数组对象
JavaScript 日期对象
JavaScript DataView 对象
JavaScript 处理程序
JavaScript Math 对象
JavaScript 正则表达式
JavaScript Symbol 类型
JavaScript Set 对象
JavaScript WeakSet 对象
JavaScript Map 对象
JavaScript WeakMap 对象
JavaScript 可迭代对象
JavaScript Reflect 对象
JavaScript TypedArray
JavaScript 模板字面量
JavaScript 标记模板

面向对象

JavaScript 对象
JavaScript 类
JavaScript 对象属性
JavaScript 对象方法
JavaScript 静态方法
JavaScript 显示对象
JavaScript 对象访问器属性
JavaScript 对象构造器
JavaScript 原型(Prototype)
JavaScript ES5 对象方法
JavaScript 封装
JavaScript 继承
JavaScript 抽象
JavaScript 多态
JavaScript 解构赋值
JavaScript 数组解构
JavaScript 嵌套解构
JavaScript 可选链
JavaScript 全局对象
JavaScript mixins
JavaScript 代理(Proxy)

Cookies

JavaScript Cookies操作
JavaScript Cookie 属性
JavaScript 删除 Cookies

浏览器 BOM

JavaScript 浏览器对象模型(BOM)
JavaScript 窗口对象
JavaScript Document 对象
JavaScript 屏幕对象
JavaScript Window History 对象
JavaScript Navigator 对象
JavaScript Location 对象
JavaScript Console 对象

Web APIs

JavaScript Web API
JavaScript History API
JavaScript 存储 API
JavaScript Forms API
JavaScript Worker API
JavaScript Fetch API
JavaScript 定位 API

事件

JavaScript 事件
JavaScript DOM 事件
JavaScript addEventListener()
JavaScript 鼠标事件
JavaScript 键盘事件
JavaScript 表单事件
JavaScript 窗口事件
JavaScript 事件委托
JavaScript 事件冒泡
JavaScript 事件捕获
JavaScript 自定义事件

错误处理

JavaScript 错误处理
JavaScript try-catch
JavaScript 调试
JavaScript 自定义错误
JavaScript 扩展错误

重要关键字

JavaScript this'关键字
JavaScript void 关键字
JavaScript new 关键字
JavaScript var 关键字

HTML DOM

JavaScript HTML DOM
JavaScript DOM 方法
JavaScript 文档对象
JavaScript DOM 元素
JavaScript 文档表单
JavaScript 更改 HTML
JavaScript 更改 CSS
JavaScript DOM 动画
JavaScript DOM 导航
JavaScript DOM 集合
JavaScript 节点列表

杂项

JavaScript Ajax
JavaScript 异步迭代
JavaScript Atomics 对象
JavaScript 剩余参数
JavaScript 页面重定向
JavaScript 对话框
JavaScript 打印网页
JavaScript 表单验证
JavaScript 创建动画
JavaScript 多媒体
JavaScript 图像地图
JavaScript 浏览器兼容性
JavaScript JSON
JavaScript 多行字符串
JavaScript 浅拷贝
JavaScript 日期格式
JavaScript 获取日期方法
JavaScript 调用栈
JavaScript 引用类型
JavaScript 设置日期方法
JavaScript 模块
JavaScript IndexedDB
JavaScript clickjacking(点击劫持)
JavaScript 动态导入
JavaScript BigInt
JavaScript 柯里化(Currying)
JavaScript 图形库
JavaScript Blob
JavaScript Unicode
JavaScript 绘制图形
JavaScript 防抖
JavaScript 性能
JavaScript 编码规范

JavaScript Cookie 属性


上一章 下一章

JavaScript 中的 Cookie 属性用于设置关于 Cookie 的附加信息,如路径、域名、过期日期等。在 JavaScript 中,您可以在设置新 Cookie 或更新 Cookie 时指定 Cookie 属性。例如,您可以使用 'expires' 属性设置 Cookie 的过期日期。

简单来说,Cookie 属性用来控制 Cookie 的行为以及 Cookie 在浏览器中的使用方式。

下面的表格列出了所有 Cookie 属性及其描述。

属性 描述 默认值
名称/值 用于在浏览器中存储 Cookie 数据。  
域名 指定 Cookie 有效的域名。 网站的域名,例如 tutorialspoint.com
路径 设置放置 Cookie 的目录或网页路径。 / (整个域名)
过期 用于指定 Cookie 应该过期的日期和时间。 当前会话
Max-Age 用于指定 Cookie 过期的时间限制(秒)。 当前会话
Secure 如果此字段包含单词 "secure",则仅可通过安全服务器检索 Cookie。若字段为空,则无此类限制。 false
HttpOnly 防止通过 JavaScript 访问 Cookie,以保护 Cookie 安全。 false
SameSite 用于指定如何处理第三方 Cookie。 Lax
优先级 定义 Cookie 的优先级。 1000
站点/服务 获取有关 Cookie 来源站点的信息。  
SourcePort 获取 Cookie 来源的端口。  
存储分区 定义用于存储 Cookie 的存储分区。  
大小 表示 Cookie 的大小。 大小取决于文本长度。

以上所有属性都是可选的。

此外,并非所有 Cookie 属性都可以被操控。某些属性由浏览器设定。

在浏览器中检查属性值

您可以设置 Cookie 的属性,但不能直接访问这些属性。要检查属性是否已设置,可以使用浏览器控制台。

按照以下步骤在浏览器控制台中检查 Cookie:

步骤 1 - 在浏览器中右键点击。将打开菜单。您需要选择 'inspect' 选项。这将打开开发者工具。

Cookie Attributes Step 1

步骤 2 - 接下来,需要转到 Application/Storage 标签页。

Cookie Attributes Step 2

步骤 3 - 在侧边栏中选择 'Cookies’。

Cookie Attributes Step 3

步骤 4 - 现在点击任何 Cookie 查看其名称、值及其他属性值。

Cookie Attributes Step 4

以上步骤仅适用于 Chrome 浏览器。具体步骤可能根据您使用的浏览器有所不同。

下面将逐一介绍每个属性,并提供示例。

Cookie 的名称/值属性

名称属性用于存储 Cookie 数据。它接受数据作为值。如果您想在 '名称' 属性的值中使用特殊字符,需要使用 encodeURIComponent() 方法对文本进行编码。

语法

按照以下语法设置 Cookie 的名称属性:

let value = encodeURIComponent(cookieValue);
document.cookie = "name=" + value + ";";

在上述语法中,我们使用 encodeURIComponent() 方法编码了 cookieValue 并使用编码后的值作为名称属性值。

示例

在下面的代码中,我们设置了 'subscribed' Cookie,值为 'false'。您可以点击 “读取 Cookies” 按钮来获取 Cookies。

<html>
<body>
 <p id="output"> </p>
 <button onclick="setCookies()"> 设置 Cookie </button> <br> <br>
 <button onclick="readCookies()"> 读取 Cookies </button>
 <script>
  let output = document.getElementById("output");
  function setCookies() {
   document.cookie = "subscribed=false"; // 名称-值对
   output.innerHTML = "Cookie 设置成功!";
  }
  function readCookies() {
   const allCookies = document.cookie.split("; ");
   output.innerHTML = "subscribed Cookie 是 - <br>";
   for (const cookie of allCookies) {
    const [name, value] = cookie.split("=");
    if (name == "subscribed") {
     output.innerHTML += `${name} : ${decodeURIComponent(value)} <br>`;
    }
   }
  }
 
</script>
</body>
</html>

Cookie 的路径属性

路径属性用于设置 Cookie 的范围。它定义了 Cookie 在网站上的可访问位置。您可以设置相对或绝对路径作为路径属性值。

如果您设置了相对路径,则所有 Cookie 在特定目录或子目录中都可访问。

语法

按照以下语法在 Cookie 中设置路径属性:

document.cookie = "name=value;path=pathStr";

在上述语法中,您需要用实际的路径字符串替换 'pathStr'。

示例

在下面的代码中,我们为 Cookie 设置了路径。这里,我们设置的是 ‘/’(首页)。因此,Cookie 可在整个网站的每个网页上访问。您可以尝试在网站的不同网页上获取 Cookie。

<html>
<body>
 <button onclick="setCookies()"> 设置 Cookie </button>
 <p id="output"> </p>
 <button onclick="readCookies()"> 读取 Cookies </button>
 <script>
  let output = document.getElementById("output");
  function setCookies() {
   document.cookie = "signIn=true; path=/";
   output.innerHTML = "Cookie 设置成功!"; 
  }
  function readCookies() {
   const allCookies = document.cookie.split("; ");
   output.innerHTML = "Cookie 是 : <br>";
   for (const cookie of allCookies) {
    const [key, value] = cookie.split("=");
    if (key == "signIn") {
     output.innerHTML += `${key} : ${decodeURIComponent(value)} <br>`;
    }
   }
  }
 
</script>
</body>
</html>

Cookie 的过期属性

'expires' 属性用于设置 Cookie 的过期日期。它接受日期字符串作为值。

如果您将 0 或过去日期设置为 'expires' 的值,浏览器将自动删除 Cookie。

语法

按照以下语法在 Cookie 中设置过期属性:

document.cookie = "name=value;expires=dateStr";

在上述语法中,您需要用日期字符串替换 'dateStr'。

示例

在下面的代码中,我们设置了产品 Cookie,并且设置了过期日期为 2050 年。

您可以尝试设置过去的过期日期并尝试访问 Cookie。您将找不到该 Cookie。

<html>
<body>
 <p id="output"> </p>
 <button onclick="setCookies()"> 设置 Cookie </button> <br> <br>
 <button onclick="readCookies()"> 读取 Cookies </button>
 <script>
  let output = document.getElementById("output");
  function setCookies() {
   document.cookie = "product=mobile;expires=12 Jan 2050 12:00:00 UTC";
   output.innerHTML = "Cookie 设置成功!";
  }
  function readCookies() {
   const allCookies = document.cookie.split("; ");
   output.innerHTML = "Cookie 是 : <br>";
   for (const cookie of allCookies) {
    const [key, value] = cookie.split("=");
    if (key == "product") {
     output.innerHTML += `${key} : ${decodeURIComponent(value)} <br>`;
    }
   }
  }
 
</script>
</body>
</html>

Cookie 的 maxAge 属性

'maxAge' 属性是 'expires' 属性的一个替代方案。它用于指定 Cookie 的生命周期。它接受秒数作为值。

当 Cookie 的生命周期结束时,它将自动删除。

语法

按照以下语法向 Cookie 传递 'maxAge' 属性:

document.cookie = "name=value;max-age=age;";

在上述语法中,您需要用秒数替换 'age'。

示例

在下面的代码中,我们将总秒数等于 10 天作为 'maxAge' 属性的值。您可以将 Cookie 的生命周期设置为 1 秒,并在 1 秒后尝试访问 Cookie。

<html>
<body>
 <button onclick="setCookies()"> 设置 Cookie </button>
 <button onclick="readCookies()"> 读取 Cookies </button>
 <p id="output"> </p>
 <script>
  const output = document.getElementById("output");
  function setCookies() {
   document.cookie = "token=1234wfijdn;max-age=864000";
  }
  function readCookies() {
   const allCookies = document.cookie.split("; ");
   output.innerHTML = "Cookie 是 : <br>";
   for (const cookie of allCookies) {
    const [key, value] = cookie.split("=");
    if (key == "token") {
     output.innerHTML += `${key} : ${decodeURIComponent(value)} <br>`;
    }
   }
  }
 
</script>
</body>
</html>

Cookie 的域名属性

域名属性用于指定 Cookie 有效的域名。默认值是从您发出请求的域名。您可以通过设置域名属性来指定子域。

语法

按照以下语法在 Cookie 中设置域名属性的值:

document.cookie = "name=value;domain:domain_name ";

在上述语法中,用实际的域名(如 example.com)替换 'domain_name'。

示例

在下面的代码中,我们为 Cookie 设置了 'tutorialspoint.com' 域名。

<html>
<body>
 <p id="output"> </p>
 <button onclick="setCookies()"> 设置 Cookie </button>
 <button onclick="readCookies()"> 读取 Cookies </button>
 <script>
  const output = document.getElementById("output");
  function setCookies() {
   document.cookie = "username=abcd;domain:tutorialspoint.com";
  }
  function readCookies() {
   const allCookies = document.cookie.split("; ");
   output.innerHTML = "Cookie 是 : <br>";
   for (const cookie of allCookies) {
    const [key, value] = cookie.split("=");
    if (key == "username") {
     output.innerHTML += `${key} : ${decodeURIComponent(value)} <br>`;
    }
   }
  }
 
</script>
</body>
</html>

同样地,您也可以更新属性值。例如,您可以延长 Cookie 的过期时间。

上一章 下一章
阅读号二维码

关注阅读号

联系二维码

联系我们

© 2024 Yoagoa. All rights reserved.

粤ICP备18007391号

站点地图