相关疑难解决方法(0)

为什么 String.raw 不能以反斜杠结尾?

String.raw可用于创建包含反斜杠的字符串,而不必将这些反斜杠加倍。

从历史上看,您需要在创建字符串时将反斜杠加倍:

let str = "C:\\Program Files\\7-Zip";
console.log(str);
Run Code Online (Sandbox Code Playgroud)

String.raw 允许您的代码显示没有双反斜杠的路径:

let str = String.raw`C:\Program Files\7-Zip`;
console.log(str);
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常,但今天我发现如果原始字符串以反斜杠结尾,它就不起作用:

let str = String.raw`Can't End Raw With Backslash\`;
console.log(str);
Run Code Online (Sandbox Code Playgroud)

上面的代码段产生了这个错误:

{
  "message": "SyntaxError: `` literal not terminated before end of script",
  "filename": "https://stacksnippets.net/js",
  "lineno": 14,
  "colno": 4
}
Run Code Online (Sandbox Code Playgroud)

为什么这是一个例外?

javascript node.js template-literals ecmascript-next

4
推荐指数
1
解决办法
259
查看次数