Как сделать сложение в javascript

Добавил пользователь Владимир З.
Обновлено: 10.09.2024

Функция isFinite позволяет проверить, является ли аргумент конечным числом.

В качестве ответа данная функция возвращает false , если аргумент является Infinity , -Infinity , NaN или будет быть приведён к одному из этих специальных числовых значений. В противном случае данная функция вернёт значение true .

Кроме глобальной функции isFinite в JavaScript имеется ещё метод Number.isFinite . Он в отличие от isFinite не осуществляет принудительное приведения аргумента к числу.

Функция isNaN

Функция isNaN предназначена для определения того, является ли аргумент числом или может ли быть преобразован к нему. Если это так, то функция isNaN возвращает false. В противном случае она возвращает true.

Если это действие нужно выполнить без приведения типа, то используйте метод Number.isNaN . Данный метод был введён в язык, начиная с ECMAScript 6.

Как явно преобразовать строку в число

Явно привести строку в число можно посредством следующих способов:

1. Использовать унарный оператор + , который необходимо поместить перед значением.

Этот способ пренебрегает пробелами в начале и конце строки, а также \n (переводом строки).

Используя данный способ необходимо обратить внимание на то, что пустая строка или строка, состоящая из пробелов и \n , переводится в число 0. Кроме этого она также преобразует тип данных null и логические значения к числу.

2. Функция parseInt . Данная функция предназначена для преобразования аргумента в целое число . В отличие от использования унарного оператора + , данный метод позволяет преобразовать строку в число, в которой не все символы являются цифровыми . Начинает она преобразовывать строку, начиная с первого символа. И как только она встречает символ, не являющийся цифровым, данная функция останавливает свою работу и возвращает полученное число.

Данная функция может работать с разными системами счисления (двоичной, восьмеричной, десятичной, шестнадцатеричной). Указание основание системы счисления осуществляется посредством 2 аргумента.

Кроме этого рекомендуется, всегда указывать основание системы счисления и не полагаться на значение по умолчанию установленное этой функции, например в том или ином браузере.

Кроме функции parseInt в JavaScript имеется метод Number.parseInt . Данный метод ничем не отличается от функции parseInt и был введён в JavaScript со спецификацией ECMASCRIPT 2015 (6).

3. Функция parseFloat . Функция parseFloat аналогична parseInt , за исключением того что позволяет выполнить преобразование аргумента в дробное число.

Кроме этого функция parseFloat в отличие от parseInt не имеет 2 аргумента, и следовательно она всегда пытается рассмотреть строку как число в десятичной системе счисления.

Кроме функции parseFloat в JavaScript имеется метод Number.parseFloat . Данный метод ничем не отличается от функции parseFloat и был введён в JavaScript со спецификацией ECMASCRIPT 2015 (6).

Преобразование числа в строку

Превратить число в строку можно с помощью метода toString .

Метод toString позволяет также указать основание системы счисления с учётом которой необходимо явно привести число к строке:

Как проверить является ли переменная числом

Определить является ли значение переменной числом можно используя один из следующих способов:

1. С использованием функций isNaN и isFinite:

Этот способ позволяет определить является ли указанное значение числом или может быть приведено к нему. Данный вариант не считает числом пустую строку, строку из пробелов, значение null , Infinity , -Infinity , true и false .

2. С использованием оператора typeof и функций isFinite, isNaN:

Эта функция определяет имеет ли указанное значение тип Number, а также не принадлежит ли оно к одному из специальных значений Infinity, -Infinity и NaN. Эсли это так, то данная функция возвращает значение true.

3. С помощью метода ECMAScript 6 Number.isInteger(value) . Данный метод позволяет определить, является ли указанное значение целым числом.

Чётные и нечётные числа

Проверить является ли число чётным или нечётным можно посредством следующих функций:

Но перед тем как проводить такую проверку желательно убедиться что указанное значение является числом:

Простые числа в Javascript

Рассмотрим пример в котором выведем с помощью Javascript простые числа от 2 до 100.

Округление числа в Javascript

Округлить дробное число до целого значения в JavaScript можно различными способами.

1. Используя специально предназначенные для этого методы Math.floor , Math.ceil и Math.round . Метод Math.floor округляет дробное число до ближайшего целого вниз, т.е. попросту отбрасывает дробную часть. Math.ceil скругляет дробное число до ближайшего целого вверх. Math.round округляет число вверх или вниз в зависимости от значения дробной части. Если дробная часть больше или равно 0.5, то вверх, иначе скруление осуществляется вниз.

2. С помощью метода toFixed(точность) . Данный метод округляет дробную часть числа до заданной точности. Результат округления возвращает в виде строки.

Если знаков после запятой для формирования указанной точности числа не хватает, то оно дополняется нулями.

3. Посредством метода toPrecision(точность) . Данный метод представляет число с указанной точностью. При этом он может округлить не только дробную, но и целую часть числа. Полученное число данный метод может представить в зависимости от результата с фиксированной запятой или в экспоненциальной форме.

4. Используя логические операторы НЕ или ИЛИ.

Целая и дробная часть числа

Получить целую часть числа можно используя метод Math.floor() и parseInt() :

Получить дробную часть числа можно воспользовавшимся оператором процент ( % ). Данный оператор возвращает остаток, который будет получен от деления первого числа на второе. В данном случае в качестве 2 числа необходимо использовать 1.

Кроме этого дробную часть можно получить также с помощью вычислений:

Делится ли число нацело

Определить делится ли число нацело можно используя оператор процента:

Форматирование чисел

В JavaScript отформатировать вывод числа в соответствии с региональными стандартами (языковыми настройками операционной системы) позволяет метод toLocaleString() .

Например, выполним форматирование числа в соответствии с региональными стандартами, которые установлены в системе по умолчанию:

Например, выполним форматирование числа в соответствии с региональными стандартами России (ru):

Данный метод можно также использовать для форматирования числа в виде валюты:

Представление числа в виде процентов:

Разбить число на разряды (свойство useGrouping ):

Вывести с число с определённым количеством цифр (2) после запятой:

Сравнение чисел

Для сравнения чисел в JavaScript используются следующие операторы: == (равно), != (не равно), > (больше), (меньше), >= (больше или равно), (меньше или равно).

Например, сравним два числа:

При сравнении чисел с дробной частью необходимо учитывать погрешности, которые могут возникать во время этих вычислений.

Например, в JavaScript сумма чисел (0.2 + 0.4) не равна 0.6:

Погрешности происходят потому что все вычисления компьютер или другое электронное устройство производит в 2 системе счисления. Т.е. перед тем как выполнить какие-то действия компьютер сначала должен преобразовать представленные в выражении числа в 2 систему счисления. Но, не любое дробное десятичное число можно представить в 2 системе счисления точно.

Например, число 0.2510 в двоичную систему преобразуется точно.

Например, число 0.210 можно преобразовать в 2 систему только с определённой точностью:

В результате эти погрешности скажутся при вычисления суммы двух чисел и результатах сравнения. Т.е. получится что на самом деле JavaScript будет видет эту запись следующим образом:

При вычислениях или отображении чисел с дробной частью необходимо всегда указывать точность, с которой это необходимо делать.

Например, сравнить числа до 2 знаков после запятой используя методы toFixed() и toPrecision() :

Основные математические операции

В JavaScript существуют следующие математические операторы: + (сложение), - (вычитание), * (умножение), / (деление), % (остаток от деления), ++ (увелить значение на 1), -- (уменьшить значение на 1).

Кроме этого в JavaScript есть комбинированные операторы: x+=y ( x=x+y ), x-=y ( x=x-y ), x*=y ( x=x*y ), x/=y ( x=x/y ), x%=y ( x=x%y ).

Сперва немного о терминологии операторов. Любой оператор javascript применяется к одному или нескольким операндам. Например: 1 + 2 — где + оператор сложения, а 1 и 2 операнды.

  • унарными — применяются только к одному операнду;
  • бинарными — применяются к двум операндам.

Существует оператор, у которого нет операндов — это оператор группировки.

Арифметические операторы

Оператор Описание
+ сложение чисел
вычитание чисел
* умножение чисел
/ деление чисел
% остаток от деления чисел

Основные арифметические операторы сложение, вычитание, умножение, деление и остаток от деления работают точно так же, как в обычной математике.

var x=10, y=5;
alert ("x + y x — y x * y x / y x % y text/javascript" language="javascript">// Попробовать

При выполнении стандартных арифметических операций необходимо следить, чтобы тип операндов был число. Иначе операнды будут приведены к числу, а в случае невозможности приведения операндов к числу в качестве результата выражения будет возвращено специальное значение NaN, исключение имеет операция сложения (+) применяемая к строкам.

Сложение строк

Если оператор + применяется к строковым переменным, то результатом будет объединенная строка. Пример:

Другими словами, в языке javascript плюс кроме арифметического сложения производит конкатенацию строк. Причем если хотя бы один аргумент выражения является строкой, то второй также будет преобразован к строке. И не важно справа или слева будет строковый операнд, не строковый все равно будет преобразован в строку. Пример:

Преобразование в число

Для преобразования переменных в число широко применяется унарный +.

Обычно данные от пользователей поступают при помощи html формы и в большинстве случаев они поступают в форме строк. И в случае, если необходимо получить сумму, то применив бинарный плюс, получится объединение строк:

Попробовать
Но применив унарный плюс можно преобразовать строковые данные в число. Например:

Присваивание

Оператор присваивания обозначается символом = (равно). Используется для присваивания переменным какого-либо значения:

var x = 5;
alert (x);//выведет 5

Попробовать
Оператор присваивания, как и все другие операторы, возвращает значение. Поэтому его можно использовать как часть другого выражения:

var x = 5;
var y = 10;
var a = 15 — (x = y + x);
alert (a);//выведет 0
alert (x);//выведет 15

Попробовать
Также возможно присваивание по цепочке:

var a, b, c;
a = b = c = 3+2;
alert (a);//выведет 5
alert (b);//выведет 5
alert ©;//выведет 5

Попробовать
Так как оператор присваивания имеет ассоциативность справа налево и один из самых маленьких приоритетов, то сначала выполняется выражение 3+2, результат которого присваивается переменной с, затем выполняется выражение b = c и последнее a = b. Таким способом удобно присваивать значение целой группе переменных.

Инкремент (++) и декремент (--)

В программировании часто требуется увеличивать или уменьшат значение переменных на единицу. Для этого в языке javascript имеются специальные операторы:

  • инкремент '++' — увеличение на 1;
  • декремент '--' — уменьшение на 1.

var x = 2;
var y = 2;
x++;
y--;
alert (x);// 3
alert (y);//1

Попробовать
Операции инкремент и декремент можно применять только к переменным. Так код 1++ выдаст ошибку.

Операции инкремент и декремент имеют две формы:

  • постфиксную — после операнда (x++);
  • префиксную — перед операндом (++x).

Обе формы делают одно и тоже, уменьшают или увеличивают на единицы. Но между ними есть небольшая разница. Так постфиксная запись сначала возвращает исходное значение переменной, а затем уже увеличивает или уменьшает ее на единицу, а префиксная увеличивает или уменьшает переменную и возвращает ее значение:

var x = 1;
var y = 1;
var a = x++;
alert (a);//1
var b = ++y;
alert (b);//2

Попробовать
Операции инкремент и декремент можно использовать в любых выражениях. При этом они имеют более высокий приоритет и выполняются раньше, чем арифметические операции. Например:

var x = 1;
var y = 5 * ++x;
alert (y);//10

Побитовые операторы

Побитовые операторы рассматривают операнды как 32-х разрядные целые числа и работают на уровне их внутреннего двоичного представления.

Поддерживаются следующие побитовые операторы:

  • AND (и) ( & );
  • OR (или) ( | );
  • XOR (побитовое исключающее или) ( ^ );
  • NOT (не) ( ~ );
  • LEFT SHIFT (левый сдвиг) ( );
  • RIGHT SHIFT (правый сдвиг) ( >> );
  • ZERO-FILL RIGHT SHIFT (правый сдвиг с заполнением нулями) ( >>> );

Побитовые используются редко и требую дополнительных знаний в программировании, поэтому это тема для отдельной статьи.

Сокращенная арифметика с присваиванием

Часто бывает нужно применить к переменной оператор и сохранить полученное значение в ней же:

var x = 2;
x = x *5;

Такую запись можно сократить с помощью совмещенных операторов:

var x = 2;
x *= 5;//равносильно x = x * 5
alert (x);

Попробовать
Так можно сделать для арифметических операторов +,-,*,/ и побитовых >,>>>,&,|,^ .

Совмещенные операторы имеют такой же приоритет как и оператор присваивания и выполняются после большинства других операций:

var x = 2;
x *= 10 + 5;
alert (x); //30 (x = x*15)

Оператор запятая

Самым необычным оператором является оператор запятая (,). Она является бинарным оператором, может принимать операнды любого типа и всегда возвращает значение правого операнда:

var x = (1, 2);
alert (x);//2

Попробовать
Оператор запятая имеет приоритет ниже присваивания, поэтому в примере выше выражение заключено в скобки, иначе бы оператор = выполнился бы раньше и получилось бы x = 1.

Обычно оператор запятая используется в конструкциях, где необходимо выполнить несколько действий в одной строке. Например в цикле for:

Арифметические операторы выполняют арифметические действия с числами (литералами или переменными).

Оператор Описание
+ Дополнение
- Вычитание
* Умножения
/ Отдел
% Модуль (остаток)
++ Увеличение
-- Уменьшения

Арифметические операции

Типичная арифметическая операция работает на двух числах.

Эти два числа могут быть литералами:

Пример

Пример

Пример

Операторы и операнды

Числа (в арифметической операции) называются операндами.

Операция (выполняемая между двумя операндами) определяется оператором.

Operand Оператор Operand
100 + 50

Добавление

Оператор сложения (+) добавляет номера:

Пример

Вычитание

Оператор вычитания (-) вычитает числа.

Пример

Умножения

Оператор умножения (*) умножает числа.

Пример

Разделение

Оператор деления (/) делит числа.

Пример

Остаток

Оператор модуля (%) возвращает остаток деления.

Пример

В арифметике деление двух целых чисел создает Коэффициент и остаток.
В математике результатом операции по модулю является оставшаяся часть арифметического деления.

Incrementing

The increment operator (++) increments numbers.

Пример

Уменьшение

Оператор уменьшения (--) уменьшает число чисел.

Пример

Приоритет оператора

Приоритет оператора описывает порядок выполнения операций в арифметическом выражении.

Пример

Является результатом пример выше же, как 150 * 3, или это же, как 100 + 150?

Является ли дополнение или умножение сделано в первую очередь?

Как и в традиционной школьной математике, умножение делается в первую очередь.

Умножение (*) и деление (/) имеют более высокий приоритет , чем сложение (+) и вычитание (-).

И (как в школьной математике) приоритет может быть изменен с помощью скобок:

Пример

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

Когда многие операции имеют одинаковый приоритет (например, сложение и вычитание), они рассчитываются слева направо:

Пример

Значения старшинства операторов JavaScript

Бледно-красные записи указывает ECMAScript 2015 (ES6) или выше.

Значение Оператор Описание Примере
20 ( ) Группирование выражений (3 + 4)
19 . Член person.name
19 [] Член person["name"]
19 () Вызов функции myFunction()
19 new Создать new Date()
17 ++ Приращение суффикса i++
17 -- Уменьшение суффикса i--
16 ++ Приращение префикса ++i
16 -- Уменьшение префикса --i
16 ! Логическое не !(x==y)
16 typeof Тип typeof x
15 ** В возведение (ес7) 10 ** 2
14 * Умножения 10 * 5
14 / Division 10 / 5
14 % Остаток дивизиона 10 % 5
13 + Дополнение 10 + 5
13 - Вычитание 10 - 5
12 > Сдвиг вправо x>> 2
12 >>> Сдвиг вправо (неподписанный) x>>> 2
11 Больше x> y
11 >= Больше или равно x>= y
11 in Правильно в объекте "PI" in Math
11 instanceof Экземпляр объекта instanceof Array
10 == Равно x == y
10 === Строгий равный x === y
10 != Неравные x != y
10 !== Строгие неравные x !== y
9 & Побитовое и x & y
8 ^ Побитовое исключающее x ^ y
7 | Побитовое или x | y
6 && Логические и x && y
5 || Логические или x || y
4 ? : Состояние ? "Yes" : "No"
3 += Назначения x += y
3 += Назначения x += y
3 -= Назначения x -= y
3 *= Назначения x *= y
3 %= Назначения x %= y
3 >= Назначения x>>= y
3 >>>= Назначения x>>>= y
3 &= Назначения x &= y
3 ^= Назначения x ^= y
3 |= Назначения x |= y
2 yield Функция паузы yield x
1 , Запятой 5 , 6

Выражения в скобках полностью вычисляются до того, как значение используется в оставшейся части выражения.

Переменные. Арифметические и логические операции в JavaScript.

Как в любом другом языке программирования переменные являются очень важными. Благодаря переменным код становится универсальным, что позволяет решать больше задач. В двух словах, в программировании без использования переменных не обойтись.

Как Вы уже знаете из предыдущей статьи (Основы JavaScript), переменные объявляются с помощью ключевого слова var.

Здесь важно отметить, что регистр важен при объявлении и использовании переменной. То есть переменная var A и переменная var a, это две разные переменные. И то имя, которое задали переменной изначально, то и нужно использовать во всем скрипте.

Так как JavaScript является клиентским языком, то значения переменных хранятся в оперативную память пользователя. В языке PHP значения хранятся в оперативную память сервера.

Как правильно задать имя переменной в JavaScript

Нельзя чтобы первым символом в имени было число. Например, так назвать можно bmw_93 а так нельзя 123_opel.

Также нельзя назвать переменную зарезервированными словами языка, как например var, for, if.

abstract boolean break
byte case catch
char class const
continue default do
double else extends
false final finally
float for function
goto if implements
import in instanceof
int interface long
native new null
package private protected
public return short
static super switch
synchronized this throw
throws transient true
try var void
while with

Рекомендуется наименовать переменные осмысленно, чтобы интуитивно было понятно, что за значение хранится в этой переменной, например для хранения количеств автомобилей можно использовать такое название count_cars а не abcsd.

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

Типы переменных

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

  • Integer – В этот тип входят целые числовые числа, как положительные так и отрицательные (например: 1,2,4, -8, -100).
  • Double – В этот тип входят числа с плавающей точкой, они еще называются дробные числа (например 1.6, -9.8, 2.5). Они тоже могут быть и отрицательными.
  • String – Это строковые значения. К этому типу относится любой символ, любая буква или же строка. Все строковые значения должны быть объявлены в одинарные либо двойные кавычки.
  • Boolean – Данный тип является логическим. Он может иметь только одну из двух значений, это либо true(истина) либо false(ложь).
  • Массив – это сбор данных, которые могут быть разных типов. Существует два типа массивов, это числовой, у которого индексы(ключи) числовые и ассоциативный, со строчными индексами.
  • Объект – Может быть одним из двух типов данных, либо ассоциативный массив, либо экземпляр какого не будь класса.

Переменные можно использовать напрямую в строку. Для примера создадим несколько переменных разных типов и выведем их всех сразу, одной строкой.

Хочу отметить, что переменные всегда выводятся без кавычек.

Сохраняем документ и открываем его в браузере.

типы переменных в javascript

Булевские переменные (тип Boolean) редко когда используются напрямую в строке. Они больше предназначены для сохранения результата разных логических операций. Потом этот результат чаще всего используется для условного оператора if, которого изучим в другой статье.

Для примера все-таки, попробуем их вывести в браузер.

Сохраняем документ и открываем его в браузере.

булевские переменные

Как видите в JavaScript, значения булевских переменных отображаются, как заданы. В PHP они отображаются иначе.

Можно объявить переменную изначально без присваивания значения, потом по необходимости сделать это.

Еще можно объявить сразу несколько переменных через запятую, используя ключевое слово var только один раз.

Массивы и объекты являются сложными типами данных, поэтому мы рассмотрим их в других статьях.

Арифметические операции

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

С начало объявим две переменные с произвольными числовыми значениями. Которые будем использовать в операциях.

Сложение переменных

И начнем мы с самой распространённой операции, со сложения.

Сохраняем документ и смотрим на результат:

сложение переменных в JavaScript

Правильный результат очевиден. Поэтому всегда, при любой арифметической операции используйте круглые скобки.

И вот результат:

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

В программировании существует еще один важный оператор, с которым Вы точно, встречались и на уроке математике. Речь едет об операторе 'остаток деления', он обозначается знаком процента (%).

Чтобы лучше понять, как работает данный оператор, приведу небольшой пример.

Почему 20 % 6 равно 2 ? Потому что 6 * 3 равно 18 и до 20 остается 2. То есть 2 это остаток деления 20 / 6.

Данный оператор (%) чаще всего используется в циклах.

Инкремент и декремент

Инкремент - это увеличение значения переменной на единичку.

Например, есть какая-нибудь переменная x со значением 1. И мы хотим значение этой переменной увеличить на единичку. И вместо того чтобы написать так x = x + 1, лучше воспользоваться инкрементом и написать так x++, результатом будет 2.

Инкремент всегда используется в циклах. Декремент тоже используется, но намного реже.

Сокращенные записи арифметических операций

Для всех арифметических операции существует и сокращенная запись. Оно действительно только когда хотим производить какую-то операцию только с одной переменной. Например:

  • вместо x = x + 10; можно написать так x += 10;
  • вместо x = x - 3; можно написать так x -= 3;
  • вместо x = x * 5; можно написать так x *= 5;
  • вместо x = x / 2; можно написать так x /= 2;
  • вместо x = x % 3; можно написать так x %= 3;

Строковые операции

Допустим, есть две переменные со строковыми значениями. Например, одна будет содержать слово ‘ша’ а другая ‘рик’. Мы хотим объединить эти слова, чтобы получилось слово ‘шарик’. Для этого воспользуемся операцией сложения.

Теперь обратим внимание на такой случай. Мы знаем, что в переменной можно записать и числа и строки, но также можно записать и строковые числа (например var = "64" ). Допустим, у нас есть две таких переменных со строковыми числами и нам нужно сложить эти числа.

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

Данные операции чаще всего используются в условных операторах if, else.

Для лучшего понимания, покажу Вам таблицу истинности. Ее Вы должны знать наизусть. Для этого достаточно ее понять.

Таблица истинности

Вместо true может быть 1, а вместо false 0.

&& - Это оператор AND, то есть И. Его можно понять как оператор умножения.

  • 0(false) && 0(false) = 0(false)
  • 0(false) && 1(true) = 0(false)
  • 1(true) && 0(false) = 0(false)
  • 1(true) && 1(true) = 1(true)

|| - Это оператор OR, то есть ИЛИ. Его можно понять как оператор сложение.

  • 0(false) || 0(false) = 0(false)
  • 0(false) || 1(true) = 1(true)
  • 1(true) || 0(false) = 1(true)
  • 1(true) || 1(true) = 1(true)

Символ '|' на клавиатуре печатается с помощью комбинации клавиш Shift + Back slesh(Обратный слеш \).

^ - Это оператор XOR, то есть Исключающее ИЛИ. Он используется редко. Но его нужно знать по любому, вдруг понадобится.

  • 0(false) ^ 0(false) = 0(false)
  • 0(false) ^ 1(true) = 1(true)
  • 1(true) ^ 0(false) = 1(true)
  • 1(true) ^ 1(true) = 0(false)

Вот и все о чем хотел Вам рассказать в этой статье. Теперь Вы знаете, какие типы переменных существуют в программировании и как использовать их в различных арифметических и логических операциях.

Похожие статьи:

Понравилась статья?

Тогда поделитесь ею с друзьями и подпишитесь на новые интересные статьи.

Читайте также: