Подтвердить что ты не робот

Почему ECMA script не предлагает целого типа из коробки?

Мне интересно, почему ECMA script не поддерживает целые числа. Конечно, я знаю, что есть какие-то целые числа (в ответе на этот вопрос есть хорошее резюме: Разница между float и int в Javascript?). Но все же это не "реальные" целые числа. И проблемы с float как ints довольно многочисленны. Итак, почему он не поддерживает целые числа и почему это не исправлено с ECMA script 6?

4b9b3361

Ответ 1

Язык был разработан и реализован через 10 дней, поэтому он был изначально ограничен временными ограничениями. Из уст лошадей:

Да, это было с самого начала. Но бонусов не было в карточках. JS должен был "выглядеть как Java" только в меньшей степени, быть Java-тупым младшим братом или бойцом-заложником. Кроме того, я должен был быть сделан через десять дней или что-то еще хуже, чем JS.

Итак, по умолчанию double, int под капотом, а побитовые ops - 32-битные int (uint, если вы используете → > ). Я обвиняю Java.

Я не знаю, почему это было не на столе для ES2015. Для меня это похоже на большую работу по удалению шаблона, но я бы догадался. Брендан Эйч довольно активен в Твиттере, возможно, вы просто спросите его.:)

Ответ 2

Не могу говорить о Гармонии, Дуглас Крокфорд, сказал, что они заинтересованы в добавлении другого типа номера в будущие издания ES. Однако он также сказал, что добавление нового типа номера делает насилие над языком, что простота языка была желательной.

https://www.youtube.com/watch?v=V1_Y-KVhZ9Q

В основном он начинает говорить о "номере" с 13:52 до 26:00