在ES9中主要是放宽了对模板字符串文字限制
模板字符串的「紧身衣」
在ES9之前,模板字符串遇到转义序列时会有严格限制
            
            
              js
              
              
            
          
          // ES8及之前会报错 
const path = `C:\new\templates\`;  
// 错误!因为`\n`和`\t`被解释为换行符和制表符 这就像在严格安检通道
- 所有``开头的字符必须符合标准转义规则(如\n换行、\t制表符)
- 非标准格式(如\x、\u不完整)直接报错
ES9的「宽松模式」
ES9引入标记模板字面量的宽松解析规则
            
            
              js
              
              
            
          
          // ES9中安全使用 
const path = String.raw`C:\new\templates\`;   
// 成功输出 "C:\new\templates\"允许非常规转义序列
            
            
              js
              
              
            
          
          console.log(`\x`);      // ES9输出 "\\x"(保留原样)
console.log(`\u{61}`);  // 输出 "a"(正常解析Unicode)支持嵌套模板字符串
            
            
              js
              
              
            
          
          // 多层模板嵌套(如生成HTML)
const html = `
  <div>
    ${`<span>${userName}</span>`}
  </div>
`;一些常见的使用场景
Windows路径处理
            
            
              js
              
              
            
          
          // 文件路径安全书写 
const configPath = `C:\Program Files\app\config.json`;   
// 无需写成:C:\\Program Files\\app\\config.json  正则表达式简化
            
            
              js
              
              
            
          
          // 匹配反斜杠的正则 
const regex = new RegExp(`\d+\\\.\\d+`);  
// 无需写成:\\d+\\\.\\d+代码生成工具
            
            
              js
              
              
            
          
          // 生成带转义字符的代码 
const code = `console.log("Hello\\nWorld");`;   
// 输出:console.log("Hello\nWorld"); 与传统方案相比
| 场景 | 旧版方案 | ES9方案 | 优势 | 
|---|---|---|---|
| 书写Windows路径 | C:\\Program Files | C:\Program Files | 减少50%反斜杠 | 
| 包含反斜杠文本 | 手动转义 \ | 直接书写`` | 避免转义混淆 | 
| 嵌套模板 | 字符串拼接 | 直接嵌套 | 提升可读性 | 
牢记
解放转义 允许非常规转义序列存在,解放嵌套 支持模板多层嵌套结构,解放创作特殊字符处理更自由