What is the 'double-dot' [eg. 5..toFixed()] I see in minified js?

217 Views Asked by At

I'm working on a project where I need to deal with javacsript frameworks for work. We have a parser that reads through them, but errors on lines with .. such as

1..toPrecision()    

or

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

It doesn't seem to understand the "..", and I don't either. Why is this valid javascript? How does mapping on a single number work? Eventually someone will fix the parser, but I'm looking for a temporary fix as to how I can edit the minified .js file to work. Is there another way to write something like 24..map()?

2

There are 2 best solutions below

0
Mike Cluck On BEST ANSWER

It's kind of a funny situation. Numbers can have a value after the decimal point, right?

console.log(1.2345); // for example

Well, it's also possible to write a number with a decimal point without any numbers following it.

console.log(5.);

So the first dot is the decimal point. The second is the property accessor.

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

The specification defines decimal literals as:

DecimalIntegerLiteral . DecimalDigits opt ExponentPart opt

where opt means optional.

4
Quentin On

The first . is the decimal separator character. 1. is a number.

The second . is the object property accessor. someNumber.toPrecision is a function.

Another way to write it would be to write the number with more significant figures:

1.0.toPrecision()