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)
为什么这是一个例外?