我刚刚在javascript中遇到了这行代码:
Math.round(someVariable\*100)
不应该那么简单:
Math.round(someVariable*100)
我查了一下,似乎都给了我相同的结果。 你有什么理由为什么用反斜杠编码?
答案 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)
您需要向我们提供更多信息,但我之所以会看到*会逃避正则表达式*。你确定这不是某些字符串或正则表达式查询扫描的一部分吗?
是的,这会让我感到困惑,因为任何一个角色都会介于数学和圆形之间。
这是我能想到的唯一一个有逃生星号(*)的想法。