标签仅用于语义化标记文档中出现的变量名,不参与 javascript 运行、不绑定值、不自动更新,仅向辅助技术传达“这是变量名”;正确用于说明文本如 api 文档,错误用于显示值或嵌入代码逻辑。

var 标签不是变量声明工具,它不参与任何计算或绑定
<var></var> 标签和 JavaScript 的 var、let、const 完全无关。它不会创建变量、不存储值、不触发 JS 解析、也不能被 JS 直接读取或修改。页面里写 <var>count</var>,和写 <span>count</span> 在运行时效果一致——只是多了层语义。
常见错误现象:<var>x</var> + <var>y</var> 被当成可运算表达式;或以为加了 <var></var> 就能用 document.querySelector('var') 获取变量值——实际拿到的是 DOM 元素,不是数值。
- 它只在文档层面起作用:告诉浏览器和辅助技术“这是个变量名”,比如屏幕阅读器可能读作 “variable x”
- 它不解析内容:写
<var>let a = 5</var>不会执行,也不会高亮语法 - 它不响应数据变化:JS 修改了
count变量,<var>count</var>不会自动更新显示
什么时候该用 var 标签:仅用于描述性文本中的变量名
适用场景非常明确:你在写说明文字,需要强调某个符号是「被操作的变量名」,而不是它的值或行为本身。
✅ 正确用法示例:
- API 文档:
<p>调用 <code>fetch(<var>url</var>)时,url 必须为 HTTPS 协议 - 数学说明:
<p>圆面积公式 π × <var>r</var>² 中,<var>r</var> 表示半径</p> - 命令行说明:
<p>设置环境变量 <var>NODE_ENV</var> 为 <code>production
❌ 错误用法:
-
<p>当前值为 <var>count</var></p>(这里要显示的是值,不是变量名) -
<input name="<var>user_id</var>">(<var></var>不会解析进属性值) -
<math><var>alpha</var></math>(MathML 要求用<mi></mi>,<var></var>在其中无意义)
var 标签的样式与排版限制
<var></var> 默认以斜体渲染,这是浏览器 UA 样式决定的,但仅限于视觉表现,不带数学排版能力——它不管上下标位置、运算符间距、分数对齐,也不支持 LaTeX 风格字体命令(如 \mathit 或 \mathbf)。
容易踩的坑:
- CSS 重置可能让它失效:全局写了
var { font-style: normal; },斜体就没了 - 不能包裹结构化内容:写
<var>x<sub>i</sub></var>是无效的;正确应为<var>x</var><sub><var>i</var></sub> - 下划线变量名(如
_var)直接套<var>_var</var>会被当作文本渲染,无法体现数学中下划线变量的语义或样式 - 嵌套在
<code>里可以,但别和<code>混用逻辑:比如<code>for (let <var>i</var> = 0; ...)合理;但<code><var>i++</var>就错了——i++是操作,不是变量名
严肃数学公式该用什么替代 var 标签
如果你的目标是让 r、_var 或 \vec{v} 在网页中真正符合数学排版标准(斜体、间距、可访问性、缩放保真),<var></var> 不够用,必须换工具链。
推荐方案:
- 轻量级需求(少量公式):用 KaTeX,写
$\mathit{r}$或$\mathit{\_var}$(注意下划线需反斜杠转义) - 原生语义+无障碍优先:用 MathML,变量用
<mi>r</mi>,下标用<msub><mi>x</mi><mi>i</mi></msub> - 复杂文档(论文、教材):服务端预处理模板标记(如
style_VAR{r})为 KaTeX 或 MathML 片段,避免前端硬编码
最容易被忽略的一点:<var></var> 解决的是“这是变量名”的语义声明,而数学排版质量取决于你是否用了真正支持它的渲染层——别指望一个语义标签扛起字体、对齐、缩放、辅助技术整条链。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











