December 6, 2019

Операторы

Хао! Итак, немного пробежимся по операторам, чтобы освежить память и, конечно же, узнать новое. Погнали!

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

  • +
  • -
  • /
  • *
  • =

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

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

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

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

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

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

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

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

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

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

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

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

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

Бинарный плюс – оператор, который применяется уже к 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

К декременту тоже имеет префиксную и постфиксную форму.

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

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

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

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

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

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

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

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

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

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

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

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

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