日常开发推荐统一用单引号,模板内容优先用反引号,双引号仅在嵌套单引号或兼容旧环境时使用;单引号简洁、兼容性好,反引号支持插值与多行,双引号适用于json或大量单引号场景。

JavaScript中字符串用单引号、双引号还是反引号,核心看是否需要插值、换行或转义简化——日常开发推荐统一用单引号(简洁、避免与HTML属性冲突),模板内容优先用反引号(支持多行和${}插值),双引号仅在需兼容旧环境或嵌套单引号时使用。
单引号:最常用,兼顾简洁与兼容性
单引号是多数团队的默认选择。它书写轻量,无需按Shift键,且天然避免与HTML中双引号属性值冲突(如``),减少转义烦恼。
- 适合纯文本、无变量、无换行的场景:`const msg = 'Hello, world';`
- 嵌套双引号很自然:`const html = '';`
- ES5及所有环境完全支持,无兼容风险
反引号(模板字面量):专为动态与结构化文本设计
反引号不是“高级替代”,而是解决特定问题的工具:多行字符串、变量插值、表达式计算。它让复杂字符串更可读、更安全。
- 含变量时直接插值:`const name = 'Alice'; const greeting = `Hi, ${name}!`;`
- 跨多行无需\n或+连接:`const sql = `SELECT * FROM users WHERE age > ${minAge}`;`
- 支持嵌套表达式:`const str = `${items.length ? `Found ${items.length}` : 'Empty'} items`;`
- 注意:IE不支持,需Babel或确认目标环境(现代浏览器、Node.js ≥ 4)
双引号:有明确需求时再用
双引号在语法上与单引号完全等价,但实际使用频率较低。它的主要价值在于嵌套单引号字符串,或对接某些外部系统(如JSON规范要求双引号)。
- 当字符串本身含大量单引号,避免过多转义:`const text = "It's a beautiful day, isn't it?"`;`
- 生成JSON字符串时更直观:`JSON.stringify({ name: "John", 'age': 30 })` 输出双引号
- 团队若统一用双引号(如Airbnb风格),则需保持一致;否则无强理由优先选用
选型建议:一条简单规则够用
定一个项目级约定,比纠结“哪个更好”更重要。推荐实践:
- 普通字符串 → 单引号(90%场景)
- 含${}或要换行 → 反引号(10%但不可替代)
- 必须嵌套大量单引号,或对接JSON/外部API → 双引号
- 全项目禁用混合写法(如不混用`'a'`和`"b"`),ESLint可配quotes规则自动校验
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南