Что это за числа в JavaScript: 1e10, 0x10, 0o10, 010, 0b10? Числовые литералы в JavaScript [дубликат]

1,00
р.



На этот вопрос уже даны ответы здесь:

Числа, начинающиеся с нуля, в JavaScript
(2 ответа)
Что значит число 4.47e+8 ?
(4 ответа)
Числа, цифры, хексы, буквы и другая каша в голове
(2 ответа)
Закрыт 1 год назад.

Что это за числа: 0x10, 0o10, 010, 0b10?
В какой системе счисления находится каждое число из приведённого списка? Чему равняется каждое число из приведённого списка? Почему та или иная буква используется для конкретного числа? Какие числа / буквы можно использовать при применении литерала?
И отдельно про 1e10:
Какому математическому выражению равняется 1e10? Где и зачем используется такая запись? Что значит часть с e10?

О вопросе: "Числа, начинающиеся с нуля, в JavaScript".
Наши вопросы похожи, но мой вопрос про численные литералы в общем, а "оригинальный", про численные литералы являющиеся восьмеричными числами.
EDIT: Теперь я также добавил в запрашиваемую информацию литералы вида 1e10, так что теперь, @Grundy не сможет отмечать мой вопрос как дубликат, так ведь?

Ответ
1. 0x10
Это шестнадцатеричный литерал, он равен 16 т.к. в шестнадцатеричной системе счисления 10 = 16. Латинская буква x используется т.к. в названии есть, собственно говоря, сам x: hexadecimal. Подробнее в википедии.
Можно использовать эти буквы и цифры: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, A, B, C, D, E, F
2. 0o10/010
Эти два литерала (0o10 и 010) буквально равны друг другу т.к. оригинальные разработчики JavaScript решили так сделать. Эти литералы используются, чтобы обозначить, то что число в восьмеричной системы счисления, и равны 8. К слову, в JavaScript если попытаться к восьмеричному литералу написать 8 или 9, то тогда JavaScript выдаст ошибку (Пример: 0o48 -> Uncaught SyntaxError: unexpected token: numeric literal). В 0o10 используется o т.к. на английском восьмеричный переводится как octal, а почему 010 сделали восьмеричной, мне не известно. Подробнее в википедии.
Можно использовать эти цифры: 0, 1, 2, 3, 4, 5, 6, 7
3. 0b10
А вот этот литерал используется в двоичной системе счисления и он равен 2. Используется b т.к. двоичный переводится как binary. Если в таком числе использовать число которое не равняется 0 или 1, то тогда JavaScript выдаст ошибку. Подробнее на википедии
Можно использовать эти цифры: 0, 1
В виде таблицы:


Число Система счисления Равняется Происхождение

0x10 Шестнадцатеричная 16 Hexadecimal
0o10/010 Восьмеричная 8 Octal
0b10 Двоичная 2 Binary


4. 1e10
Объясняя просто, 1e10 это математическое выражение которое в понятном нам виде выглядит так: 1 * (10 ^ 10) (Или так, если вы хотите записать его в JS: 1 * (10 ** 10)). Есть много видов записи такого литерала, вот некоторые из них (примеры с тысячей):
1e3 = 1000 1e-3 = 0.001
Часто такие литералы могут использоваться при минимизации (минификации) кода, т.к. позволяют сохранить пару байт.
В совокупности с вышесказанным, отвечаю на вопрос, e10 значит умножить на 10 возведя в 10 степень (1 * 10 ** 10)
P.S. У таких литералов буква в начале также может записываться как заглавная, на работу это никак не влияет. (Примеры: 0X10, 0O10, 0B10, 1E10)