Выбрать главу

0

3

10000000

Помимо десятичных целых литералов JavaScript распознает шестнадцатеричные значения (по основанию 16). Шестнадцатеричные литералы начинаются с последовательности символов «0х» или «0Х», за которой следует строка шестнадцатеричных цифр. Шестнадцатеричная цифра - это одна из цифр от 0 до 9 или букв от а (или А) до f (или F), представляющих значения от 10 до 15. Ниже приводятся примеры шестнадцатеричных целых литералов:

Oxff           // 15*16 + 15 = 255 (по основанию 10)

0xCAFE911

Хотя стандарт ECMAScript не поддерживает представление целых литералов в восьмеричном формате (по основанию 8), некоторые реализации JavaScript допускают подобную возможность. Восьмеричный литерал начинается с цифры 0, за которой могут следовать цифры от 0 до 7. Например:

0377 // 3*64 + 7*8 + 7 = 255 (по основанию 10)

Поскольку некоторые реализации поддерживают восьмеричные литералы, а некоторые нет, никогда не следует писать целый литерал с ведущим нулем, ибо нельзя сказать наверняка, как он будет интерпретирован данной реализацией - как восьмеричное число или как десятичное. В строгом (strict) режиме, определяемом стандартом ECMAScript 5 (раздел 5.7.3), восьмеричные литералы явно запрещены.

3.1.2. Литералы вещественных чисел

Литералы вещественных чисел должны иметь десятичную точку - при определении таких литералов используется традиционный синтаксис вещественных чисел. Вещественное значение представляется как целая часть числа, за которой следуют десятичная точка и дробная часть числа.

Литералы вещественных чисел могут также представляться в экспоненциальной нотации: вещественное число, за которым следует буква е (или Е), а затем необязательный знак плюс или минус и целая экспонента. Такая форма записи обозначает вещественное число, умноженное на 10 в степени, определяемой значением экспоненты.

Ниже приводится более лаконичное определение синтаксиса:

[цифры][.цифры][(Е|е)[(+|-)]цифры]

Например:

3.14

2345.789

.333333333333333333

6.02е23 // 6.02 х 1023

1.4738223Е-32 // 1.4738223 х 10-32

3.1.3. Арифметические операции в JavaScript

Обработка чисел в языке JavaScript выполняется с помощью арифметических операторов. В число таких операторов входят: оператор сложения +, оператор вычитания -, оператор умножения *, оператор деления / и оператор деления по модулю % (возвращает остаток от деления). Полное описание этих и других операторов можно найти в главе 4.

Помимо этих простых арифметических операторов JavaScript поддерживает более сложные математические операции, с помощью функций и констант, доступных в виде свойств объекта Math:

Math.pow(2,53) // => 9007199254740992: 2 в степени 53

Math.round(.6) // => 1.0: округление до ближайшего целого

Math.ceil(.6)  // => 1.0: округление вверх

Math.floor(.6) // => 0.0: округление вниз

Math.abs(-5)   // => 5: абсолютное значение

Math.max(x,y,z)// Возвращает наибольший аргумент

Math.min(x,y,z)// Возвращает наименьший аргумент

Math.random()  // Псевдослучайное число х, где 0 <= х < 1.0

Math.PI        // пи: длина окружности / диаметр

Math.E         // е: Основание натурального логарифма

Math.sqrt(3)   // Корень квадратный из 3

Math.pow(3, 1/3) // Корень кубический из 3

Math.sin(0)    // Тригонометрия: имеются также Math.cos, Math.atan и другие.

Math.log(10)   // Натуральный логарифм 10

Math.log(100)/Math.LN10 // Логарифм 100 по основанию 10 (десятичный)

Math.log(512)/Math.LN2  // Логарифм 512 по основанию 2

Math.exp(3)    // Math.E в кубе

Полный перечень всех математических функций, поддерживаемых языком JavaScript, можно найти в справочном разделе с описанием объекта Math.

Арифметические операции в JavaScript не возбуждают ошибку в случае переполнения, потери значащих разрядов или деления на ноль. Если результат арифметической операции окажется больше самого большого представимого значения (переполнение), возвращается специальное значение «бесконечность», которое в JavaScript обозначается какInfinity. Аналогично, если абсолютное значение отрицательного результата окажется больше самого большого представимого значения, возвращается значение «отрицательная бесконечность», которое обозначается как -Infinity. Эти специальные значения, обозначающие бесконечность, ведут себя именно так, как и следовало ожидать: сложение, вычитание, умножение или деление бесконечности на любое значение дают в результате бесконечность (возможно, с обратным знаком).