JavaScript. Подробное руководство, 6-е издание, стр. 18
<b>Oxff // 15*16 + 15 = 255 (по основанию 10)</b><b>0xCAFE911</b>Хотя стандарт ECMAScript не поддерживает представление целых литералов в восьмеричном формате (по основанию 8), некоторые реализации JavaScript допускают подобную возможность. Восьмеричный литерал начинается с цифры 0, за которой могут следовать цифры от 0 до 7. Например:
<b>0377 // 3*64 + 7*8 + 7 = 255 (по основанию 10)</b>Поскольку некоторые реализации поддерживают восьмеричные литералы, а некоторые нет, никогда не следует писать целый литерал с ведущим нулем, ибо нельзя сказать наверняка, как он будет интерпретирован данной реализацией - как восьмеричное число или как десятичное. В строгом (strict) режиме, определяемом стандартом ECMAScript 5 (раздел 5.7.3), восьмеричные литералы явно запрещены.
3.1.2. Литералы вещественных чисел
Литералы вещественных чисел должны иметь десятичную точку - при определении таких литералов используется традиционный синтаксис вещественных чисел. Вещественное значение представляется как целая часть числа, за которой следуют десятичная точка и дробная часть числа.
Литералы вещественных чисел могут также представляться в экспоненциальной нотации: вещественное число, за которым следует буква е (или Е), а затем необязательный знак плюс или минус и целая экспонента. Такая форма записи обозначает вещественное число, умноженное на 10 в степени, определяемой значением экспоненты.
Ниже приводится более лаконичное определение синтаксиса:
<b>[цифры][.цифры][(Е|е)[(+|-)]цифры]</b>Например:
<b>3.14</b><b>2345.789</b><b>.333333333333333333</b><b>6.02е23 // 6.02 х 10<sup>23</sup></b><b>1.4738223Е-32 // 1.4738223 х 10<sup>-32</sup></b>3.1.3. Арифметические операции в JavaScript
Обработка чисел в языке JavaScript выполняется с помощью арифметических операторов. В число таких операторов входят: оператор сложения
<b>+</b><b>-</b><b>*</b><b>/</b><b>%</b>Помимо этих простых арифметических операторов JavaScript поддерживает более сложные математические операции, с помощью функций и констант, доступных в виде свойств объекта Math:
<b>Math.pow(2,53) // => 9007199254740992: 2 в степени 53</b><b>Math.round(.6) // => 1.0: округление до ближайшего целого </b><b>Math.ceil(.6) // => 1.0: округление вверх </b><b>Math.floor(.6) // => 0.0: округление вниз </b><b>Math.abs(-5) // => 5: абсолютное значение </b><b>Math.max(x,y,z)// Возвращает наибольший аргумент </b><b>Math.min(x,y,z)// Возвращает наименьший аргумент </b><b>Math.random() // Псевдослучайное число х, где 0 <= х < 1.0</b><b>Math.PI // пи: длина окружности / диаметр </b><b>Math.E // е: Основание натурального логарифма </b><b>Math.sqrt(3) // Корень квадратный из 3 </b><b>Math.pow(3, 1/3) // Корень кубический из 3</b><b>Math.sin(0) // Тригонометрия: имеются также Math.cos, Math.atan и другие.</b><b>Math.log(10) // Натуральный логарифм 10</b><b>Math.log(100)/Math.LN10 // Логарифм 100 по основанию 10 (десятичный)</b><b>Math.log(512)/Math.LN2 // Логарифм 512 по основанию 2</b><b>Math.exp(3) // Math.E в кубе</b>Полный перечень всех математических функций, поддерживаемых языком JavaScript, можно найти в справочном разделе с описанием объекта Math.
Арифметические операции в JavaScript не возбуждают ошибку в случае переполнения, потери значащих разрядов или деления на ноль. Если результат арифметической операции окажется больше самого большого представимого значения (переполнение), возвращается специальное значение «бесконечность», которое в JavaScript обозначается как
<b>Infinity</b><b>-Infinity</b>Потеря значащих разрядов происходит, когда результат арифметической операции оказывается ближе к нулю, чем минимально возможное значение. В этом случае возвращается число 0. Если потеря значащих разрядов происходит в отрицательном результате, возвращается специальное значение, известное как «отрицательный ноль». Это специальное значение практически ничем не отличается от обычного нуля, и у программистов на JavaScript редко возникает необходимость выделять его.
Деление на ноль не считается ошибкой в JavaScript: в этом случае просто возвращается бесконечность или отрицательная бесконечность. Однако есть одно исключение: операция деления нуля на ноль не имеет четко определенного значения, поэтому в качестве результата такой операции возвращается специальное значение «не число» (not-a-number), которое обозначается как
<b>NaN</b><b>NaN</b>В JavaScript имеются предопределенные глобальные переменные
<b>Infinity</b><b>NaN</b>