标签仅用于语义化标注文档中变量名、参数名或公式符号,不参与js执行、不被浏览器解析为值、不支持数学排版或语法高亮;正确用法如“设n为样本数量”,禁用嵌套或塞入。

什么时候该用 <var></var> 标签
只在文档中「描述」某个变量名、参数名或公式符号时才用,不是声明变量,也不参与 JS 执行。浏览器不会解析它的内容为值,JS 读不到它的“含义”,它只告诉辅助工具和搜索引擎:“这个词代表一个可变的量”。
常见误用现象:<var id="count">x</var> 后试图用 document.getElementById('count').textContent 拿到变量 x 的值 —— 实际返回的只是字符串 "x";<input name="<var>user_id</var>"> 中的 <var></var> 不会被展开,name 属性值就是字面量 "<var>user_id</var>"。
- 数学说明中强调符号:如“设
<var>n</var>为样本数量” - API 路径占位符:如
GET /api/posts/<var>id</var> - 函数调用描述中的形参名:如“传入
fetch(<var>url</var>)”,url是参数名,不是字符串字面量 - 配置项标识:如“将
<var>DATABASE_URL</var>写入 .env 文件”
<var></var> 和 <code> 到底怎么配合
<var></var> 表示“这是个变量名”,<code> 表示“这是段可执行/可引用的代码文本”,二者语义不同,不能嵌套使用。
错误写法:
<code>const <var>count</var> = 42;</code> <p>问题在于:<code><var></var></code></p>嵌套进
<code> 会干扰语法高亮器(如 Prism)识别变量 token,屏幕阅读器也可能收到冲突信号——外层说“这是可执行代码”,内层又说“这只是个名字”。
正确组合方式:
<p>调用 <code>fetchUser(id),其中 id 必须为字符串类型-
<p>圆面积公式为 <var>A</var> = π<var>r</var>²</p>(纯语义标注,不涉及代码) - 真实 JS 代码块统一用
<code>或<pre class="brush:php;toolbar:false;"></pre>,例如<code>let count = 42;
为什么不能用 <var></var> 显示数学公式里的下划线变量(如 _var)
<var></var> 不是 MathML 或 KaTeX 的一部分,它不参与数学排版,也不触发任何公式渲染逻辑。单独写 <var>_var</var> 不会自动斜体化、不会适配上下标、更不会被 KaTeX 解析为数学变量。
数学公式中带下划线的变量(如 _var),必须走标准数学排版路径:
- KaTeX 场景:
$$\mathit{\_var}$$或$\mathit{_var}$ - MathML 场景:用
<mi>_var</mi>,而非<var></var> - CSS 辅助(仅视觉):
<span style="font-style: italic">_var</span>,但无语义
把 <var></var> 塞进 <math></math> 块里却不按 MathML 规则用(比如写成 <math><var>alpha</var></math>),属于无效结构,多数渲染器会忽略或报错。
容易被忽略的兼容性与可访问性细节
虽然所有现代浏览器都支持 <var></var>,但它默认仅渲染为斜体,且屏幕阅读器通常不会特殊处理 —— 不会加读音提示、也不会改变语调。它的语义价值主要体现在 HTML 结构层面,对 SEO 和静态分析工具有意义,但对终端用户几乎不可感知。
如果你依赖它提升可访问性,得额外加 ARIA 属性,比如:<var aria-label="variable x">x</var>;但更稳妥的做法是直接用 <code> + 清晰上下文说明。
关键点:不要指望 <var></var> 自动帮你做语法高亮、动态替换、值绑定或公式排版 —— 它只干一件事:标注“这个词是变量名”,其余全靠其他技术栈补足。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











