Странное поведение javascript для экспоненциального метода - PullRequest
0 голосов
/ 12 апреля 2020

MDN говорит:

Если вы используете метод toExponential () для литерала цифра c и литерал цифра c не имеет показателя степени и не имеет десятичной точки оставьте пробел (ы) перед точкой, предшествующей вызову метода, чтобы точка не интерпретировалась как десятичная точка.

Однако при попытке использовать этот метод для литерала цифры 1030 * (фрагмент ниже), я получаю сообщение об ошибке:

SyntaxError: идентификатор начинается сразу после цифры c литерал

Не должно быть никаких проблем при интерпретации точки в качестве десятичной точки, поскольку после нее не должно быть цифр.

Кроме того, этот код выдал ошибку при первом запуске его на jsfiddle. net. Но теперь это не дает никакой ошибки. Странно!

Что здесь происходит в конце концов? Кто прав? В таблице совместимости браузера MDN говорится, что этот метод уже давно имеет полную поддержку go.

document.getElementById('a').innerHTML = 100 .toExponential();
document.getElementById('b').innerHTML = 100.toExponential();
<span id='a'></span><br>
<span id='b'></span>

1 Ответ

0 голосов
/ 12 апреля 2020

Вы не можете вызывать функцию для чисел, подобных 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 при первом запуске, потому что была синтаксическая ошибка, которая, скорее всего, автоматически исправлялась, например, при сохранении файла. .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...