Особенности чисел в JavaScript


Иногда JavaScript называют наиболее недооцененным языком программирования в мире. Он часто высмеивается, называется игрушечным, но под его слоем обманчивой простоты скрывается мощная функциональность полноценного языка программирования. На JavaScript в настоящее время разрабатывается невероятное количество приложений; глубокое знание этой технологии является важным навыком для любого мобильного, веб-разработчика и даже разработчика программ для десктопа. В этой статье мы поговорим о числах в JS.

У вас может возникнуть вопрос, а что такого: числа и есть числа. Так и не так: есть немало интересного, специфичного именно для данного языка. Итак, числа в JavaScript.

Числа в JavaScript имеют "двойной точности 64-битный формат IEEE 754", в соответствии со спецификацией. Это имеет некоторые интересные последствия. Нет такого понятия, как целое число в JavaScript, так что вы должны быть немного осторожным с вашей арифметикой, если вы привыкли к математике в C или Java.

Кроме того, надо следить за такими вещами, как:

0,1 + 0,2 == +0,30000000000000004
На практике, целочисленные значения обрабатываются как 32-разрядные целые числа, и в некоторых реализациях даже хранятся так, пока не просят выполнить инструкции, которые затрагивают именно количество, а не на 32-разрядное целое число. Это может быть важно для побитовых операций.

Поддерживаются стандартные арифметические операторы, включая сложение, вычитание, модуль (или остаток) и так далее. Есть также встроенный объект, называемый Math, который предоставляет возможность работы с расширенными математическими функциями и константами:

Math.sin (2.5);
var sc= Math.PI *R*R; 
Вы можете преобразовать строку в целое число, используя встроенную функцию ParseInt (). При этом за основу берется необязательный второй аргумент:

ParseInt ( "1988", 10); // 1988
ParseInt ( "011", 10); // 11
В старых браузерах, строки, начинающиеся с "0" предполагаются в восьмеричном формате, но это было прекращено примерно в 2013 году. Если вы не уверены в вашем формате строки, вы можете получить удивительные результаты на этих старых браузерах:

ParseInt ( "010"); // 8
ParseInt ( "0x10"); // 16
Здесь мы видим, функция ParseInt () рассматривать первую строку как восьмеричную, благодаря нулю на первом месте, а вторая строка как шестнадцатеричная в связи с "0x".Кстати, шестнадцатеричная запись по-прежнему на месте; только восьмеричная была удалена из современных браузеров.

Если вы хотите, чтобы преобразовать двоичное число в целое число, просто измените второй аргумент:

ParseInt ( "11", 2); // 3
Стоит отметить, что функция parseInt() парсит строку до тех пора, пока есть корректные символы, как только доходит до того, который не является числовым форматом, то уже возвращает это значение включительно.

В одной из своих предыдущих заметок я уже писал о NaN – правда в связи с языком си шарп. В JS тоже есть NaN (сокращение от "Not a Number") – получить его можно, если попробовать распарсить строку, которая точно не число:

parseInt("прювейт!", 10); // NaN
Интересно, что любая операция с этим «не числом» всегда будет возвращать его:

NaN - 101; // NaN
Интересно, что в JavaScript есть два типа бесконечности: положительная и отрицательная, то есть со знаком плюс и минус: Infinity и – Infinity. Таким образом, даже такая простая тема как числа в языке JavaScript обладает некоторыми нюансами. Напоследок замечу, что, несмотря на то, что js имеет возможность принимать и отдавать данные – это все же язык сценариев, который изначально спроектирован так, чтобы запускаться в какой-либо среде, то есть у него нет специальных операторов ввода-вывода, как в других ЯП. Вы привыкли видеть его работу в своем браузере, но на самом деле его можно запустить и в фотошопе и в Unity3D и даже на сервере, к примеру, node.js.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегистатьи IT, javascript, особенности




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Неочевидный взлом сайта
Заливка и извлечение изображений из базы sqlite на C#
Принцесса и женихи