Поиск по сайту:

Как выполнять математические операции в JavaScript с помощью операторов


Введение

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

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

В отличие от других языков программирования, JavaScript имеет только один числовой тип данных; например, нет различия между целыми числами (положительными или отрицательными целыми числами) и числами с плавающей запятой (числа с десятичной точкой).

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

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

Арифметические операторы — это символы, обозначающие математическую операцию и возвращающие значение. В уравнении 3 + 7=10 + — это синтаксис, означающий сложение.

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

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

Operator Syntax Example Definition
Addition + x + y Sum of x and y
Subtraction - x - y Difference of x and y
Multiplication * x * y Product of x and y
Division / x / y Quotient of x and y
Modulo % x % y Remainder of x / y
Exponentiation ** x ** y x to the y power
Increment ++ x++ x plus one
Decrement -- x-- x minus one

В этой статье мы более подробно рассмотрим каждый из этих операторов.

Сложение и вычитание

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

Мы можем выполнить простое сложение с числами, например сложить 10 и 20, используя знак плюс (+).

10 + 20;
Output
30

Помимо выполнения математических операций с простыми числами, мы также можем присваивать числа переменным и выполнять те же вычисления. В этом случае мы присвоим числовые значения x и y и поместим сумму в z.

// Assign values to x and y
let x = 10;
let y = 20;

// Add x and y and assign the sum to z
let z = x + y;

console.log(z);
Output
30

Точно так же мы используем знак минус (-) для вычитания чисел или переменных, представляющих числа.

// Assign values to x and y
let x = 10;
let y = 20;

// Subtract x from y and assign the difference to z
let z = y - x;

console.log(z);
Output
10

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

// Assign values to x and y
let x = -5.2;
let y = 2.5;

// Subtract y from x and assign the difference to z
let z = x - y;

console.log(z);
Output
-7.7

Одна интересная вещь, о которой следует помнить в JavaScript, — это результат добавления числа и строки. Мы знаем, что 1 + 1 должно равняться 2, но это уравнение даст неожиданные результаты.

let x = 1 + "1";

console.log(x);
typeof x;
Output
11 'string'

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

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

function scrollToId() {
	const navHeight = 60;
	window.scrollTo(0, window.pageYOffset - navHeight);
}

window.addEventListener('hashchange', scrollToId);

В приведенном выше примере нажатие на идентификатор приведет к прокрутке на 60 пикселей выше идентификатора.

Сложение и вычитание — два наиболее распространенных математических уравнения, которые вы будете использовать в JavaScript.

Умножение и деление

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

Звездочка (*) используется для обозначения оператора умножения.

// Assign values to x and y
let x = 20;
let y = 5;

// Multiply x by y to get the product
let z = x * y;

console.log(z);
Output
100

Умножение может использоваться для расчета цены товара после применения налога с продаж.

const price = 26.5;    // Price of item before tax
const taxRate = 0.082; // 8.2% tax rate

// Calculate total after tax to two decimal places
let totalPrice = price + (price * taxRate);
let fixedPrice = totalPrice.toFixed(2);

console.log("Total:", fixedPrice);
Output
Total: 28.67

Косая черта (/) используется для представления оператора деления.

// Assign values to x and y
let x = 20;
let y = 5;

// Divide y into x to get the quotient
let z = x / y;

console.log(z);
Output
4

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

Модуль

Один арифметический оператор, который немного менее известен, — это оператор по модулю (иногда известный как модуль), который вычисляет остаток от частного после деления. Модуль представлен знаком процента (%).

Например, мы знаем, что 3 переходит в 9 ровно три раза, и остатка нет.

9 % 3;
Output
0

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

// Initialize function to test if a number is even
const isEven = x => {
	// If the remainder after dividing by two is 0, return true
	if (x % 2 === 0) {
		return true;
	}
	// If the number is odd, return false
	return false;
}

// Test the number
isEven(12);
Output
true

В приведенном выше примере 12 делится на 2 без остатка, поэтому это четное число.

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

Возведение в степень

Возведение в степень — это один из новых операторов в JavaScript, который позволяет нам вычислять степень числа по его показателю. Синтаксис возведения в степень — две звездочки подряд (**).

10 в пятой степени, или 10^5, записывается так:

10 ** 5;
Output
100000

10 ** 5 равно пятикратному умножению 10 на 10:

10 * 10 * 10 * 10 * 10;

Другой способ записать это с помощью метода Math.pow().

Math.pow(10, 5);
Output
100000

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

Увеличение и уменьшение

Операторы инкремента и декремента увеличивают или уменьшают числовое значение переменной на единицу. Они представлены двумя знаками плюс (++) или двумя знаками минус (--) и часто используются с циклами.

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

7++
Output
Uncaught ReferenceError: Invalid left-hand side expression in postfix operation

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

Во-первых, мы можем указать приращение префикса с помощью ++x.

// Set a variable
let x = 7;

// Use the prefix increment operation
let prefix = ++x;

console.log(prefix);
Output
8

Значение x было увеличено на единицу. Чтобы увидеть разницу, мы проверим приращение постфикса с помощью y++.

// Set a variable
let y = 7;

// Use the prefix increment operation
let postfix = y++;

console.log(postfix);
Output
7

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

Оператор инкремента или декремента чаще всего встречается в цикле. В этом примере цикла for мы выполним операцию десять раз, начиная с 0 и увеличивая значение на 1 с каждой итерацией.

// Run a loop ten times
for (let i = 0; i < 10; i++) {
  console.log(i);
}
Output
0 1 2 3 4 5 6 7 8 9

В приведенном выше коде показана итерация цикла, которая достигается с помощью оператора приращения.

Мы можем рассматривать x++ как сокращение для x=x + 1, а x-- — как сокращение для x=x - 1. .

Операторы присваивания

Одним из наиболее часто используемых операторов является оператор присваивания, который мы уже видели и который представлен знаком равенства (=). Мы используем =, чтобы присвоить значение справа переменной слева.

// Assign 27 to age variable
let age = 27;

В дополнение к стандартному оператору присваивания в JavaScript есть составные операторы присваивания, которые объединяют арифметический оператор с =.

Например, оператор сложения начнет с исходного значения и добавит новое значение.

// Assign 27 to age variable
let age = 27;

age += 3;

console.log(age);
Output
30

В этом случае age += 3 равносильно написанию age=age + 3.

Все арифметические операторы можно комбинировать с присваиванием для создания составных операторов присваивания. Ниже приведена справочная таблица операторов присваивания в JavaScript.

Operator Syntax
Assignment =
Addition assignment +=
Subtraction assignment -=
Multiplication assignment *=
Division assignment /=
Remainder assignment %=
Exponentiation assignment **=

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

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

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

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

// First multiply 3 by 5, then add 10
10 + 3 * 5;
Output
25

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

// First add 10 and 3, then multiply by 5
(10 + 3) * 5;
Output
65

Ниже приведена справочная таблица приоритета арифметических операций в JavaScript, от высшего к низшему. Для инкрементации и декрементации постфикс имеет более высокий приоритет, чем префикс.

Приращение/уменьшение, умножение/деление и сложение/вычитание имеют одинаковый уровень приоритета.

Operator Syntax
Parentheses ()
Incrementation ++
Decrementation --
Exponentiation **
Multiplication *
Division /
Addition +
Subtraction -

Приоритет оператора включает не только арифметические операторы, но и операторы присваивания, логические операторы, условные операторы и многое другое. Чтобы увидеть полный список, просмотрите приоритет операторов в Mozilla Developer Network (MDN).

Заключение

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

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