Операторы

JavaScript простым языком

Большинство операторов известно нам еще с начальных классов, к примеру:

  • +

  • -

  • /

  • *

  • =

Они все используются в JavaScript, но есть нюансы.

Нюансы касаются операторов: +, -, *. Они в JavaScript умеют немного больше, чем в обычной математике.

Унарный/бинарный плюс

К примеру, с помощью оператора + можно складывать не только числа, но и строки:

'a' + 'b'; // получим: 'ab'
'1' + '3'; // получим: '13'  

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

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

Чтобы такой чумы не случилось, можно использовать функцию JavaScript под названием Number, а можно использовать еще одну супер способность оператора +: преобразование к числу. Это я тоже уже показывал в одном из предыдущих уроков:

let a = '45';
let b = +a;  

В данном случае, переменная b будет иметь значение 45 и тип, внимание – Number. Оператор + поставленный перед любым значением, будет пытаться преобразовать это значение к типуNumber. В данном случае его называют унарным плюсом, что означает лишь одно: плюс применяется только к одному операнду.

Запись такого типа, не должна тебя пугать:

console.log(+'1' + +'3'); // получим значение: 4

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

Бинарный плюс – оператор, который применяется уже к 2-м операндам (аргументам).

Небольшой пример бинарного плюса:

1 + 4;

В предыдущем уроке о циклах, я упомянул такие термины, как инкремент и декремент. Разберем эти понятия.

Инкремент

Инкремент просто-напросто увеличивает текущее значение переменной на единицу:

let a = 3;
a++; 
console.log(a); // получим значение: 4

Как видишь, плюсики стоят после переменной. Такая запись инкремента называется постфиксной формой. Но есть еще префиксная форма.

Префиксная форма точно так же, как и постфикснаяувеличивает значение на единицу. Но в чем же тогда разница, спросишь ты? А вот в чем:

let a = 5;
console.log(a++); // что выведет?

Думаешь, что в консоль выведется значение 6? А вот и нет, в консоль выведется старое значение 5. Значение в данном случае увеличивается после того, как ты вызвал инкремент, а не в момент его вызова.

А вот префикснаяработает так, как ты ожидал от постфиксной:

let a = 5;
console.log(++a); // выведет значение 6

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

Декремент

Декремент уменьшает текущее значение переменной на единицу:

let a = 3;
a--; 
console.log(a); // получим значение: 2

Декремент тоже имеет префиксную и постфиксную формы.

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

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

JavaScript позволяет достаточно просто возвести любое число в любую степень. Для этого используется оператор **:

2 ** 3; // читать, как "два в третей степени": 8
3 ** 2; // читать, как "три во второй степени": 9

Остаток от деления

И еще один полезный оператор – %. Оператор позволяет нам получить остаток после деления. Пример:

11 % 2; // получим значение: 1
8 % 3; // получим значение: 2

В первом случае: 11 не делится на 2 без остатка. Максимальное число, которое делится на 2 без остатка в данном примере – это 10. Получается, что остаток здесь равен единице (11 - 10).

Во втором случае все ровно так же: Максимальное число, которое делится без остатка в данном случае – это 6. Вычитая из значения 8 значение 6, получаем: 2.

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

Домашнее задание

Сегодня совсем байтовое домашнее задание. Весь код я вынес в новый для тебя онлайн-редактор (Repl.it). Ещё раз изучи код и попробуй со всем поиграться самостоятельно.

Ссылка на редактор с кодом

Last updated