Что такое "двойная точка" [например, 5..toFixed()] Я вижу в минимизированных js?

Я работаю над проектом, где мне нужно работать с фреймворками javacsript для работы. У нас есть синтаксический анализатор, который читает их, но ошибки в строках с.., таких как

1..toPrecision()    

или же

24..map(function(t){return 7..map(function(a){return e[a][t]})

Кажется, он не понимает "..", и я тоже не понимаю. Почему это действительный JavaScript? Как работает отображение на один номер? В конце концов кто-то исправит парсер, но я ищу временное исправление того, как я могу отредактировать уменьшенный файл.js для работы. Есть ли другой способ написать что-то вроде 24..map()?

2 ответа

Решение

Это довольно забавная ситуация. Числа могут иметь значение после десятичной точки, верно?

console.log(1.2345); // for example

Ну, также возможно написать число с десятичной точкой без каких-либо чисел после него.

console.log(5.);

Итак, первая точка - это десятичная точка. Вторым является свойство собственности.

console.log(5.                  .toString());
//           ^ decimal point    ^ property accessor

Спецификация определяет десятичные литералы как:

DecimalIntegerLiteral. DecimalDigits опция ExponentPart опция

где opt означает необязательный.

Первый . символ десятичного разделителя. 1. это число.

Второй . является средством доступа к свойству объекта. someNumber.toPrecision это функция.

Другой способ написать это - написать число с более значительными цифрами:

1.0.toPrecision()
Другие вопросы по тегам