为什么我必须用四个反斜杠而不是两个来编写代码?

why I must write the code with four backslashes instead of two?

我想这样写代码document.querySelector('#foo\bar');它不起作用

    <div id="foo\bar"></div>
    <div id="foo:bar"></div>

<script>

  document.querySelector('#foo\\bar'); // Match the first div
  document.querySelector('#foo\:bar');  // Match the second div
</script>

JavaScript 字符串语法使用反斜杠作为特殊字符的转义机制。为了使字符串以 反斜杠结尾,您必须将其加倍。

然后,CSS querySelector() also 的选择器语法使用反斜杠字符作为特殊的转义序列开始,所以它在所有地方都是一样的再次.

因此解析字符串将反斜杠减少为两个,然后解释选择器导致 querySelector() 只查找一个反斜杠。