javascript toExponential 方法的奇怪行为
Strange behavior of javascript toExponential method
MDN 说:
If you use the toExponential() method for a numeric literal and the
numeric literal has no exponent and no decimal point, leave
whitespace(s) before the dot that precedes the method call to prevent
the dot from being interpreted as a decimal point.
但是,当尝试将此方法用于数字文字(下面的代码段)时,出现错误:
SyntaxError: identifier starts immediately after numeric literal
将点解释为小数点应该没有问题,因为它后面没有数字。
此外,我第一次在 jsfiddle.net 上 运行 时,这段代码出错了。但现在它没有给出任何错误。奇怪!
到底发生了什么事?谁是对的? MDN 的浏览器兼容性 table 说这种方法很早以前就得到了全面支持。
document.getElementById('a').innerHTML = 100 .toExponential();
document.getElementById('b').innerHTML = 100.toExponential();
<span id='a'></span><br>
<span id='b'></span>
您不能对 100.toExponential()
这样的数字调用函数,因此您必须添加一个空格或添加另一个点。原因是当处理数字时,JavaScript 期望在第一个点之后有一个小数...所以通过添加另一个点然后我们告诉 JavaScript 小数部分是空的并且它可以继续该方法.
document.getElementById("a").innerHTML = 100 .toExponential();
document.getElementById("b").innerHTML = 100..toExponential();
document.getElementById("c").innerHTML = (100).toExponential();
<span id="a"></span><br />
<span id="b"></span><br />
<span id="c"></span>
该代码可能在第一个 运行 上给您一个关于 jsfiddle 的错误,因为存在语法错误,例如,当您保存文件时,该错误很可能会自动更正。
MDN 说:
If you use the toExponential() method for a numeric literal and the numeric literal has no exponent and no decimal point, leave whitespace(s) before the dot that precedes the method call to prevent the dot from being interpreted as a decimal point.
但是,当尝试将此方法用于数字文字(下面的代码段)时,出现错误:
SyntaxError: identifier starts immediately after numeric literal
将点解释为小数点应该没有问题,因为它后面没有数字。
此外,我第一次在 jsfiddle.net 上 运行 时,这段代码出错了。但现在它没有给出任何错误。奇怪!
到底发生了什么事?谁是对的? MDN 的浏览器兼容性 table 说这种方法很早以前就得到了全面支持。
document.getElementById('a').innerHTML = 100 .toExponential();
document.getElementById('b').innerHTML = 100.toExponential();
<span id='a'></span><br>
<span id='b'></span>
您不能对 100.toExponential()
这样的数字调用函数,因此您必须添加一个空格或添加另一个点。原因是当处理数字时,JavaScript 期望在第一个点之后有一个小数...所以通过添加另一个点然后我们告诉 JavaScript 小数部分是空的并且它可以继续该方法.
document.getElementById("a").innerHTML = 100 .toExponential();
document.getElementById("b").innerHTML = 100..toExponential();
document.getElementById("c").innerHTML = (100).toExponential();
<span id="a"></span><br />
<span id="b"></span><br />
<span id="c"></span>
该代码可能在第一个 运行 上给您一个关于 jsfiddle 的错误,因为存在语法错误,例如,当您保存文件时,该错误很可能会自动更正。