<var>标签仅用于语义化标记文档中表示变量名的纯文本,不声明JavaScript变量,不影响执行逻辑,仅在技术文档中标识可变符号时使用。

<var> 标签根本不能定义程序运行的变量名——它不声明、不存储、不绑定任何 JavaScript 值,也不参与任何执行逻辑。
为什么<var>不是变量定义工具
很多人看到 <var>count</var> 就以为是在 HTML 里“声明了 count 变量”,这是典型误解。浏览器解析时,<var> 只是普通内联元素,和 <span> 没本质区别;JS 引擎完全无视它,document.querySelector('var').textContent 返回的只是字符串 "count",不是变量 count 的值或引用。
- 它不等价于 JS 中的
let count、const timeout或var user_id - 写
<input name="<var>user_id</var>">,name 属性实际值就是字面量"<var>user_id</var>",不是user_id - 用
<var id="x">然后document.getElementById('x'),拿到的是 DOM 元素,不是 JS 变量x
什么场景下该用<var>标签
只在技术文档中需要向人(或辅助技术)明确指出「这个词代表一个可变的符号」时才用,且必须是纯名字本身,不含语法结构。
- 数学公式说明:
<p><var>a</var><sup>2</sup> + <var>b</var><sup>2</sup> = <var>c</var><sup>2</sup></p> - API 路径占位符:
<p>GET /api/users/<var>id</var></p> - 函数调用参数名:
<p>调用 <code>fetch(</code><var>url</var><code>)</code></p> - 配置项标识:
<p>将 <var>DATABASE_URL</var> 写入 .env 文件</p>
和<code>混用时的边界在哪
关键看语义:你要强调的是「这个符号是变量名」,还是「这段文本是可执行/可引用的代码片段」。
- ✅ 正确:
<p>循环中用 <code>for (let </code><var>i</var><code> = 0; </code><var>i</var><code> —— <code><code>包结构,<var>单独标出被操作的标识符 - ✅ 正确:
<p>传入 <code>parseJSON(</code><var>data</var><code>)</code></p> - ❌ 错误:
<code>const <var>timeout</var> = 5000;</code>—— 高亮器无法识别<var>内容为变量 token,应写作<code>const </code><var>timeout</var><code> = 5000;</code> - ❌ 错误:
<var><code>x</code></var>—— 语义冗余,样式易冲突
容易被忽略的排版与可访问性细节
默认斜体只是浏览器 fallback,不代表数学排版规范;真要渲染公式,<var> 远不够用。
- 它不控制 π 是否正体、上下标对齐、分式结构等——这些必须靠 MathML、KaTeX 或 MathJax
- 屏幕阅读器对
<var>的支持有限,部分读作普通文本,不加特殊语调;若依赖可访问性,需额外 aria-label 或配合<math> - CSS 自定义样式(如
var { font-style: normal; color: #2563eb; })可以改视觉,但改不了语义;别指望靠它实现“变量高亮”效果


















