Вступление
Математические операции являются одними из самых фундаментальных и универсальных особенностей любого языка программирования. В JavaScript числа часто используются для общих задач, таких как поиск размеров окна браузера, получение окончательной цены денежной транзакции и вычисление расстояния между элементами в документе веб-сайта.
Хотя понимание математики на высоком уровне не является обязательным условием для того, чтобы быть способным разработчиком, важно знать, какие типы операций доступны в JavaScript, и как использовать математику как инструмент для решения практических задач.
В отличие от других языков программирования, JavaScript имеет только один тип данных number; например, не делается различий между целыми числами (положительными или отрицательными целыми числами) и числами с плавающей точкой (числа с десятичной точкой).
В этом руководстве мы рассмотрим арифметические операторы, операторы присваивания и порядок операций, используемых с типами данных числа JavaScript.
Арифметические Операторы
-
Арифметические операторы * являются символами, которые указывают математическую операцию и возвращают значение. В уравнении «3 + 7 = 10 +» синтаксис «++» означает сложение.
В JavaScript есть много знакомых операторов из базовой математики, а также несколько дополнительных операторов, специфичных для программирования.
Вот справочная таблица арифметических операторов JavaScript.
Operator | Syntax | Example | Definition |
---|---|---|---|
Addition |
|
|
Sum of |
Subtraction |
|
|
Difference of |
Multiplication |
|
|
Product of |
Division |
|
|
Quotient of |
Modulo |
|
|
Remainder of |
Exponentiation |
|
|
|
Increment |
|
|
|
Decrement |
|
|
|
Мы подробно рассмотрим каждый из этих операторов в этой статье.
Сложение и вычитание
Операторы * сложения * и * вычитания * доступны в JavaScript и могут использоваться для нахождения суммы и разности числовых значений. В JavaScript есть встроенный калькулятор, и математические операции можно выполнять прямо в консоли.
Мы можем сделать простое сложение с числами, например, добавив + 10 +
и + 20 +
, используя знак плюс (+
).
10 + 20;
Output30
В дополнение к математике с простыми числами, мы также можем назначать числа переменным и выполнять те же вычисления. В этом случае мы присвоим числовые значения для + 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);
Output30
Точно так же мы используем знак минус (+ - +
) для вычитания чисел или переменных, представляющих числа.
// 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);
Output10
Мы также можем складывать и вычитать отрицательные числа и числа с плавающей запятой (десятичные дроби).
// 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, - это результат добавления числа и string , Мы знаем, что +1 + 1 +
должно равняться + 2 +
, но это уравнение будет иметь неожиданные результаты.
let x = 1 + "1";
console.log(x);
typeof x;
Output11
'string'
Вместо добавления двух чисел JavaScript преобразует весь оператор в строку и concatenate их вместе. Важно быть осторожным с динамически типизируемой природой 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);
Output100
Умножение может быть использовано для расчета цены товара после применения налога с продаж.
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);
totalPrice.toFixed(2);
console.log("Total:", totalPrice);
OutputTotal: 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);
Output4
Деление особенно полезно при расчете времени, например, при поиске количества часов в количестве минут или при расчете процента правильных ответов, выполненных в тесте.
Модульное
Немного менее знакомым арифметическим оператором является оператор по модулю (иногда известный как модуль), который вычисляет остаток от отношения после деления. Модуль представлен знаком процента (+% +
).
В качестве примера мы знаем, что + 3 +
входит в + 9 +
ровно три раза, а остатка нет.
9 % 3;
Output0
Мы можем использовать оператор по модулю, чтобы определить, является ли число четным или нечетным, как видно из этой функции:
// 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);
Outputtrue
В приведенном выше примере + 12 +
делится равномерно на + 2 +
, поэтому это четное число.
Часто в программировании модуль используется в сочетании с условными операторами для управления потоком.
Возведение
-
Экспонентация * - один из более новых операторов в JavaScript, и он позволяет нам вычислить степень числа по его показателю степени. Синтаксис возведения в степень состоит из двух звездочек подряд (
+ ** +
).
От 10 до пятой степени, или 10 ^ 5, записывается так:
10 ** 5;
Output100000
+10 ** 5 +
представляет собой то же самое, что + 10 +
, умноженное на + 10 +
пять раз:
10 * 10 * 10 * 10 * 10;
Другой способ написать это с помощью метода + Math.pow () +
.
Math.pow(10, 5);
Output100000
Использование оператора возведения в степень - это краткий способ определения мощности данного числа, но, как обычно, важно придерживаться стиля вашей кодовой базы при выборе между методом и оператором.
Увеличение и уменьшение
Операторы * увеличения * и * уменьшения * увеличивают или уменьшают числовое значение переменной на единицу. Они представлены двумя знаками плюс () или двумя знаками минус (
+ - +
) и часто используются с https://www.digitalocean.com/community/tutorials/how-to -construct-для петель-в-JavaScript # для цикла [петель].
Обратите внимание, что операторы увеличения и уменьшения могут использоваться только для переменных; попытка использовать их для необработанного числа приведет к ошибке.
7++
OutputUncaught 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);
Output8
Значение + x +
было увеличено на единицу. Чтобы увидеть разницу, мы протестируем приращение постфикса с помощью + y +++
.
// Set a variable
let y = 7;
// Use the prefix increment operation
let postfix = y++;
console.log(postfix);
Output7
Значение + y +
не было увеличено в операции постфикса. Это связано с тем, что значение не будет увеличиваться до тех пор, пока выражение не будет оценено. Повторное выполнение операции приведет к увеличению значения.
let y = 7;
y++;
y++;
console.log(y);
Output8
Оператор увеличения или уменьшения будет виден чаще всего в цикле. В этом примере цикла + for +
мы будем запускать операцию десять раз, начиная с + 0 +
и увеличивая значение на + 1 +
с каждой итерацией.
// Run a loop ten times
for (let i = 0; i < 10; i++) {
console.log(i);
}
Output0
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);
Output30
В этом случае + 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;
Output25
Если вместо этого мы хотим сначала выполнить операцию сложения, мы должны сгруппировать ее в скобках, которая всегда имеет самый высокий приоритет.
// First add 10 and 3, then multiply by 5
(10 + 3) * 5;
Output65
Ниже приведена справочная таблица приоритетов операторов арифметических операторов в JavaScript, от самого высокого до самого низкого. Для увеличения и уменьшения постфикс имеет более высокий приоритет, чем префикс.
Увеличение / уменьшение, умножение / деление и сложение / вычитание имеют одинаковый уровень приоритета.
Operator | Syntax |
---|---|
Parentheses |
|
Incrementation |
|
Decrementation |
|
Exponentiation |
|
Multiplication |
|
Division |
|
Addition |
|
Subtraction |
|
Приоритет оператора включает не только арифметические операторы, но также операторы присваивания, логические операторы, условные операторы и многое другое. Полный список см. На странице operator приоритет в Mozilla Developer Network (MDN).
Заключение
В этой статье мы рассмотрели арифметические операторы и синтаксис, включая многие знакомые математические операторы и некоторые, специфичные для программирования.
Кроме того, мы узнали, как комбинировать арифметику и присваивание для создания составных операторов присваивания и порядок операций в JavaScript.