Поддерживает ли Javascript целое переполнение и недополнение? Если да, то как? - программирование
Подтвердить что ты не робот

Поддерживает ли Javascript целое переполнение и недополнение? Если да, то как?

Мы знаем, что Java не обрабатывает недоисполнения и переполнения, но как Javascript обрабатывает их для целых чисел?

Вернется ли он к минимуму/максимуму? Если да, то какой минимум/максимум?

Мне нужно разбить строку и вычислить хэш-значение на основе его символов.

4b9b3361

Ответ 1

В простом тесте, когда я пытаюсь это сделать:

var max = Number.MAX_VALUE;
var x = max + 10;

var min = Number.MIN_VALUE;
var y = min / 10;

Я нахожу, что x и max имеют одинаковое значение (в Chrome, IE и Firefox), поэтому кажется, что переполнение просто привязано к максимальному значению. И y получает привязку к 0, поэтому переполнение кажется равным нулю.

Демо: http://jsfiddle.net/jfriend00/hH3pT/

Ответ 2

Максимальный и минимальный +/- 9007199254740992

Попробуйте this:

alert([Number.MAX_VALUE, Number.MIN_VALUE]);

Из здесь: -

Заметим, что все положительные и отрицательные целые числа, величина которых отсутствует больше 2 53 представляются в типе Number (действительно, целое число 0 имеет два представления, +0 и -0).

Проверьте это: -

var x = 9007199254740992;
var y = -x;
x == x + 1; // true !
y == y - 1; // also true !