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

时间:2013-11-21 20:35:39

标签: javascript

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

Math.round(someVariable\*100)

不应该那么简单:

Math.round(someVariable*100)

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

2 个答案:

答案 0 :(得分:1)

除非该行被/**/包围,否则无效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解释器的特定实现对它接受的内容不严格,如果不知道你正在使用的实际解释器,很难辨别。但是,如果是这样的话,我会认真考虑使用它。实现之间存在相对较小的差异,但到目前为止它们都没有违反语言规范的最基本部分。

答案 1 :(得分:0)

您需要向我们提供更多信息,但我之所以会看到*会逃避正则表达式*。你确定这不是某些字符串或正则表达式查询扫描的一部分吗?

是的,这会让我感到困惑,因为任何一个角色都会介于数学和圆形之间。

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

相关问题