Почему целочисленный литерал, за которым следует точка, является допустимым числовым литералом в JavaScript? - PullRequest
6 голосов
/ 12 сентября 2010

В JavaScript допустимо заканчивать целочисленный числовой литерал точкой, например, так ...

x = 5.;

Какой смысл иметь эту запись?Есть ли какая-либо причина ставить точку в конце, и если нет, то почему эта запись в первую очередь разрешена?

Обновление: Хорошо, ребята, поскольку вы упоминаете числа с плавающей точкой и целые числа... Мы говорим о JavaScript здесь.В JavaScript есть только один числовой тип - IEEE-754.

5 и 5. имеют одинаковое значение, между этими двумя значениями нет никакой разницы.

Ответы [ 5 ]

4 голосов
/ 12 сентября 2010

Я думаю, что это просто совместимость с другими C-подобными языками, где точка имеет значение.

2 голосов
/ 13 сентября 2010

Вам НЕОБХОДИМО десятичная точка, если вы вызываете метод для целого числа:

5.toFixed(n) // throws an error

5..toFixed(n) // returns the string '5.' followed by n zeroes

Если это выглядит не так, (5).toFixed(n) или 5.0.toFixed(n) также будут работать.

2 голосов
/ 12 сентября 2010

Правильный ответ в этом случае состоит в том, что это не имеет абсолютно никакого значения.

Каждое число в JavaScript уже является 64-битным числом с плавающей запятой.

«. syntax» полезен только в тех случаях, когда вы можете пропустить фиксированную часть, потому что она 0:

.2 // Will end up as 0.2
-.5 // Will end up as -0.5

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

1 голос
/ 12 сентября 2010

Это число с плавающей запятой. В отличие от любого другого языка, с которым я когда-либо сталкивался, все числа в Javascript на самом деле являются 64-битными плавающими числами. Технически, в Javascript нет собственных целых чисел. См. Полный справочник по номерам Javascript для полной уродливой истории.

0 голосов
/ 12 сентября 2010

Что если это будет не целое число, а литерал с плавающей запятой?

...