模板字符串是String字面量的新语法,仍属原始string类型,用反引号定义,支持插值、多行、嵌套及标签函数,typeof返回"string",所有字符串方法均可直接调用。
javascript 中的模板字符串不是 string 类型的新子类,而是 string 字面量的一种新语法形式——它仍属于原始 string 类型,但提供了更强大的表达能力。它的核心价值在于用更自然的方式构建动态字符串,而不是改变类型本质。
模板字符串由一对反引号 ` 包裹,例如 `hello ${name}`。运行时它会被求值为标准的原始字符串(primitive string),typeof 返回 "string",和 'hello' 或 "world" 完全一致。它不创建新对象,也不继承额外方法。
new String() 或 String.raw 直接生成模板字符串.split()、.includes())都可直接调用模板字符串允许在 ${...} 中嵌入任意合法 JavaScript 表达式,执行结果会自动转为字符串并拼接进去。
${userName}
${price * taxRate}
${getFormattedDate()}
${isActive ? 'online' : 'offline'}
${user?.profile?.name ?? 'Guest'}
if、for、let),也不能写函数声明换行符、制表符、空格都会被原样保留在最终字符串中,无需 n 或 + 拼接。
String#trim() 或标签函数处理一个模板字符串内部可以包含另一个模板字符串,实现逻辑分层;还可配合自定义标签函数,对插值前的原始字符串和值进行预处理。
立即学习“Java免费学习笔记(深入)”;
`Price: ${`$${(base * 1.1).toFixed(2)}`}`
safeHTML`<div>${userInput}</div>`(需自行实现转义)String.raw(禁用转义)、String.fromCodePoint 不适用,但可用于国际化、SQL 参数化等场景