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

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

Math.round(someVariable*100)

这不应该是简单的:

Math.round(someVariable*100)

我查了一下,都似乎给了我相同的结果。 你有什么理由为什么它用反斜杠编码?


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

ECMAScript规范仅在字符串(包括JSONStrings)和正则表达式的上下文中提到了反斜杠。 如果您使用以下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解释器的特定实现与它所接受的内容不相容,在不知道您使用的实际解释器的情况下很难辨别。 但是,如果是这样的话,我会认真考虑使用它。 实现之间存在相对较小的差异,但是它们都违反了语言规范的最基本位。


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

是的,那会让我困惑,因为任何一个角色都会在数学和数学之间出现。

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

链接地址: http://www.djcxy.com/p/80923.html

上一篇: Why is there back slash in this piece of code?

下一篇: 1.4.2 invalid argument line 4618 value=NaNpx in IE8