为什么这段代码中有反斜杠

Why is there back slash in this piece of code?

本文关键字:代码 段代码 为什么      更新时间:2023-09-26

我刚刚在javascript:中看到了这行代码

Math.round(someVariable'*100)

这不应该很简单吗:

Math.round(someVariable*100)

我检查了一下,结果似乎都一样。你能说出为什么用反斜杠编码吗?

除非该行以某种方式被/**/包围,否则这不是有效的Javascript:-)

ECMAScript规范只在字符串(包括JSONString)和正则表达式的上下文中提到反斜杠。如果您使用以下HTML文件:

<!DOCTYPE html>
<html>
  <body>
    <p id="demo">Click the button.</p>
    <button onclick="myFunction()">Try it</button>
    <script>
      function myFunction() {
        document.getElementById("demo").innerHTML = Math.round(2.57'*10);
      }
    </script>
  </body>
</html>

你会发现大多数浏览器都会出现一个错误:

Firefox 24esr: SyntaxError: illegal character @ ...
Chrome 31    : Uncaught SyntaxError: Unexpected token ILLEGAL
IE 8         : Invalid character

这就是我主要开发框中的所有内容。

事实上,由于Math.round()返回了一个您应该以某种方式使用的值,因此即使确实有效,该语句也是无用的。这个问题可能有一些你没有提供的额外背景。

可能是您的Javascript解释器的特定实现对其接受的内容不严格,如果不知道您使用的实际解释器,很难辨别。但是,如果是这样的话,我会认真地重新考虑使用它。实现之间有相对较小的差异,但没有一个太离谱,因为它们违反了语言规范的最基本部分。

您需要给我们更多信息,但我看到*的原因是转义regex*。你确定这不是某个字符串或正则表达式查询扫描的一部分吗?

是的,这会让我感到困惑,因为任何一个字符都会介于数学和舍入之间。

这是我能想到的唯一一个会有一个逃脱的星号(*)的想法。