Логотип schoolsw3.com
Учебники Справочники Упражнения КАК? Меню
Создать
Редактор Поддержка Форум

×
Учебники
Справочники
Упражнения
Пожертвовать Обновление Реклама Видео Магазин

JS Учебник

JS Главная JS Введение JS Установить JS Вывод JS Заявления JS Синтаксис JS Комментарии JS Переменные JS Let JS Const JS Операторы JS Арифметика JS Присваивание JS Типы данных JS Функции JS Объекты JS События JS Строки JS Методы строк JS Поиск строк JS Шаблоны строк JS Числа JS BigInt JS Методы чисел JS Свойства чисел JS Массивы JS Методы массива JS Поиск массива JS Сортировка массива JS Итерация массива JS Постоянный массив JS Даты JS Форматы даты JS Методы даты JS Методы набора даты JS Объекты Math JS Случайные числа JS Булевы JS Операторы сравнения JS Оператор If...Else JS Оператор Switch JS Цикл For JS Цикл For In JS Цикл For Of JS Цикл While JS Оператор Break JS Повторяющиеся JS Наборы JS Набор методов JS Карты JS Методы Карты JS Typeof JS Преобразование JS Битовые JS Выражения JS Приоритет JS Ошибки JS Область JS Подъемный JS Строгий JS Ключевое слово this JS Стрелки JS Классы JS Модули JS JSON JS Отладчик кода JS Стиль JS Практика JS Ошибки JS Эффективность JS Слова

JS Версии

JS Версии JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS 2019 JS 2020 JS 2021 JS 2022 JS 2023 JS IE/Edge JS История

JS Объекты

Определение объектов Свойства объектов Методы объектов Отображение объектов Доступ к объекту Конструкторы объектов Прототипы объектов Управление объектами Защита объектов

JS Функции

Определение функций Параметры функций Обращение к функциям Вызов функций Применение функций Заимствование функций Закрытие функций

JS Классы

Введение класса Наследование класса Статистический класс

JS Асинхронный

JS Обратный вызов JS Асинхронный JS Обещания JS Асинхронный

JS HTML DOM

DOM Введение DOM Методы DOM Документы DOM Элементы DOM Изменить HTML DOM Проверка формы DOM Изменить CSS DOM Анимация DOM События DOM Прослушиватель DOM Навигация DOM Узлы DOM Коллекция DOM Список узлов

JS Браузер BOM

JS Window JS Экран JS Расположение JS История JS Навигатор JS Предупреждение JS Синхронизация JS Файлы cookie

JS Веб APIы

API Веб Введение API Веб Формы API Веб История API Веб Хранилище API Веб Работник API Веб Извлечь Файл API Веб Геолокации

JS AJAX

AJAX Введение AJAX XMLHttpRequest AJAX Запрос на сервер AJAX Ответ с сервера AJAX XML Файл AJAX PHP Файл AJAX ASP Файл AJAX База данных AJAX Приложения AJAX Примеры

JS JSON

JSON Введение JSON Синтаксис JSON с XML JSON Типы данных JSON Парсинг JSON Строки JSON Объекты JSON Массивы JSON Сервер JSON с PHP JSON с HTML JSON с JSONP

JS или jQuery

jQuery Селекторы jQuery HTML Элементы jQuery CSS Стили jQuery DOM

JS Графика

JS Графики JS Холсты JS Plotly.js JS Chart.js JS Google Диаграмма JS D3.js

JS Примеры

JS Примеры JS JSON JS HTML DOM JS HTML Ввод JS HTML Объекты JS HTML События JS Браузер JS Редактор JS Упражнения JS Тест-викторина

JS Рекомендация

JavaScript Объекты HTML DOM Объекты


JavaScript BigInt


JavaScript BigInt variables are used to store big integer values that are too big to be represented by a normal JavaScript Number.

JavaScript Integer Accuracy

JavaScript integers are only accurate up to 15 digits:

Integer Precision

let x = 999999999999999;
let y = 9999999999999999;
Try it Yourself »

In JavaScript, all numbers are stored in a 64-bit floating-point format (IEEE 754 standard).

With this standard, large integer cannot be exactly represented and will be rounded.

Because of this, JavaScript can only safely represent integers:

Up to 9007199254740991 +(253-1)

and

Down to -9007199254740991 -(253-1).

Integer values outside this range lose precision.


How to Create a BigInt

To create a BigInt, append n to the end of an integer or call BigInt():

Examples

let x = 9999999999999999;
let y = 9999999999999999n;
Try it Yourself »
let x = 1234567890123456789012345n;
let y = BigInt(1234567890123456789012345)
Try it Yourself »

BigInt: A new JavaScript Datatype

The JavaScript typeof a BigInt is "bigint":

Example

let x = BigInt(999999999999999);
let type = typeof x;
Try it Yourself »

BigInt is the second numeric data type in JavaScript (after Number).

With BigInt the total number of supported data types in JavaScript is 8:

1. String
2. Number
3. Bigint
4. Boolean
5. Undefined
6. Null
7. Symbol
8. Object


BigInt Operators

Operators that can be used on a JavaScript Number can also be used on a BigInt.

BigInt Multiplication Example

let x = 9007199254740995n;
let y = 9007199254740995n;
let z = x * y;
Try it Yourself »

Notes

Arithmetic between a BigInt and a Number is not allowed (type conversion lose information).

Unsigned right shift (>>>) can not be done on a BigInt (it does not have a fixed width).


BigInt Decimals

A BigInt can not have decimals.

BigInt Division Example

let x = 5n;
let y = x / 2;
// Error: Cannot mix BigInt and other types, use explicit conversion.
let x = 5n;
let y = Number(x) / 2;
Try it Yourself »

BigInt Hex, Octal and Binary

BigInt can also be written in hexadecimal, octal, or binary notation:

BigInt Hex Example

let hex = 0x20000000000003n;
let oct = 0o400000000000000003n;
let bin = 0b100000000000000000000000000000000000000000000000000011n;
Try it Yourself »

Precision Curiosity

Rounding can compromise program security:

MAX_SAFE_INTEGER Example

9007199254740992 === 9007199254740993; // is true !!!
Try it Yourself »

Browser Support

BigInt is supported in all browsers since September 2020:

Chrome 67 Edge 79 Firefox 68 Safari 14 Opera 54
May 2018 Jan 2020 Jul 2019 Sep 2020 Jun 2018


Minimum and Maximum Safe Integers

ES6 added max and min properties to the Number object:

  • MAX_SAFE_INTEGER
  • MIN_SAFE_INTEGER

MAX_SAFE_INTEGER Example

let x = Number.MAX_SAFE_INTEGER;
Try it Yourself »

MIN_SAFE_INTEGER Example

let x = Number.MIN_SAFE_INTEGER;
Try it Yourself »

New Number Methods

ES6 also added 2 new methods to the Number object:

  • Number.isInteger()
  • Number.isSafeInteger()

The Number.isInteger() Method

The Number.isInteger() method returns true if the argument is an integer.

Example: isInteger()

Number.isInteger(10);
Number.isInteger(10.5);
Try it Yourself »

The Number.isSafeInteger() Method

A safe integer is an integer that can be exactly represented as a double precision number.

The Number.isSafeInteger() method returns true if the argument is a safe integer.

Example isSafeInteger()

Number.isSafeInteger(10);
Number.isSafeInteger(12345678901234567890);
Try it Yourself »

Safe integers are all integers from -(253 - 1) to +(253 - 1).
This is safe: 9007199254740991. This is not safe: 9007199254740992.