{"id":4098,"url":"\/distributions\/4098\/click?bit=1&hash=4a2746815553d402e055c9b00a2035b35e47c0edcda5fd7253d5e57f885e8ecc","title":"\u0410\u0444\u0435\u0440\u0438\u0441\u0442\u043a\u0430, \u0440\u0435\u0431\u0451\u043d\u043e\u043a \u0438 \u043f\u0430\u043d\u043a \u2014 \u0447\u0442\u043e \u043e\u0434\u0435\u0436\u0434\u0430 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430\u0445?","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"e6048338-fd6d-53fa-aaf4-387384748bf7"}

Урок - Тип данных Number в JavaScript

Привет, сегодня в этом уроке мы познакомимся с типами данных в JavaScript и подробно поговорим о типе данных Number. Приятного просмотра, не забудь поставить лайк, подписаться и оставить комментарий.

Транскрипт урока

Числовой, примитивный, тип данных в JavaScript на который выделено 64 бита памяти, этот тип данных помимо целых чисел включает в себя также хранение чисел с плавающей запятой. В других языках числа могут подразделяться на несколько типов, например: Integer, Float, Double или Bignum. Но в JavaScript тип за числа отвечают типы данных number и bigint. О bigint немного позднее.

const integerNumber = 100; const floatNumber = 10.2; const anotherFloatNumber = 10.2002; console.log(integerNumber, floatNumber, anotherFloatNumber);

Запись больших чисел

Для записи больших чисел мы можем использовать букву 'e' для того чтобы сократить число

const oneBillion = 1000000000; // Здесь у нас 9 нулей const oneBillionWithE = 1e9; // Здесь тоже const floatBillions = 5500000000; const floatBillionsWithE = 5.5e9; console.log('e', floatBillions, floatBillionsWithE);

Отрицательное число после "e" подразумевает деление на 1 с указанным// количеством нулей:

const oneMillisecond = 0.000001; const oneMillisecondWithE = 1e-6;

Также большие числа мы можем разделять символом '_' для повышения читаемости.

const bigNumber = 10_000_000_00;

Специальные числовые значения

Помимо самих чисел к этому типу подразделяются специальные числовые значения такие как: Infinity, -Infinity, NaN.Infinity - является математической бесконечностью, которая больше любого числа.

В JavaScript мы можем делить на 0 и это не вызовет никаких ошибок.

const divOnZero = 10 / 0; // Infinity

Также мы можем задать Infinity явно.

const infinityNumber = Infinity;

NaN - not a number.

Мы можем его получить если будем выполнять неправильную математическую операцию или задавать его явно.

const exampleNaN_1 = 'Vladimir' * 10; const exampleNaN_2 = 'Vladimir' / 10; const exampleNaN_3 = 'Vladimir' - 10; const exampleNaN_4 = NaN;

Если мы будем выполнять любые математические операции с NaN то получим NaN

const exampleNaN_5 = NaN; // явно const exampleNaN_6 = 'Vladimir' - 10; // неявно

Negative numbers

Все числа из предыдущих примеров были положительными. Это не относится к NaN. Положительное число или отрицательное легко проверить через Math.sign.

С отрицательными числами нет никаких проблем, кроме того что для знака минус '-' выделен отдельный бит, из-за чего мы можем попасть в ситуацию с -0

const negativeZero = -0; const zero = 0;

Пример

const negativeZeroExample = 0 / -10;

Аналогично все числа, кроме NaN, могут быть отрицательными.

const negativeInfinity_1 = -Infinity; const negativeInfinity_2 = 10 / -0; const negativeInfinity_3 = -2e6; const negativeInfinity_4 = -1_000_000_000;

Также в JavaScript есть возможность работать с шестнадцатеричными, двоичными и восьмеричными числами, но это выходит за рамки сегодняшнего урока.

Неточности в вычислениях

Из 64 бит, отведённых на число, сами цифры числа занимают до 52 бит, остальные 11 бит хранят позицию десятичной точки и один бит – знак. Так что если 52 бит не хватает на цифры, то при записи пропадут младшие разряды.

Аналогичные проблемы с точностью возникают в языках: PHP, Java, C, Perl, Ruby.

P.S. Больше уроков у меня на канале

0
2 комментария
Loser Antbear

А дзе BigInt? :c

Ответить
Развернуть ветку
Vladimir Shaitan
Автор

BigInt это отдельный тип данных в языке JavaScript, о нем будет информация в следующем материал по типам данных в JS

Ответить
Развернуть ветку
-5 комментариев
Раскрывать всегда
null