string.raw 用于获取模板字符串的原始内容,即不进行转义处理。调用时传入一个具有 raw 属性的类数组对象(通常由模板字面量自动提供),它会返回该 raw 属性对应的未转义字符串。这主要用于需要保留反斜杠字面值的场景,如正则表达式或 windows 路径。

普通模板字符串与 String.raw 的区别是什么
普通模板字符串会解析转义字符,而 String.raw 保持原样。例如,\n 在普通模板中变为换行符,在 String.raw 中仍为两个字符。通过对比两者输出,可以清晰看到差异。

const normal = `Line1\nLine2`; const raw = String.raw`Line1\nLine2`; console.log(normal); // 实际输出两行 console.log(raw); // 实际输出一行包含 \n
如何处理 Windows 文件路径中的反斜杠
Windows 路径常用 \ 作为分隔符,但在 JS 字符串中 \ 是转义符。使用 String.raw 可以避免手动双写反斜杠,直接写入单一反斜杠即可得到正确路径字符串。
立即学习“Java免费学习笔记(深入)”;

const path = String.raw`C:\Users\Name\file.txt`; console.log(path); // C:\Users\Name\file.txt
String.raw 的输入参数必须满足什么条件
String.raw 是一个标签函数,其第一个参数必须是类数组对象,且包含 raw 属性。该 raw 属性也是一个类数组,存储了未转义的片段。如果手动构造输入,必须确保 strings 和 strings.raw 结构一致,否则可能抛出错误或返回异常结果。


















