Операторы
Хао! Итак, немного пробежимся по операторам, чтобы освежить память и, конечно же, узнать новое. Погнали!
Большинство операторов известно нам еще с начальных классов, к примеру:
- +
- -
- /
- *
- =
Они все используются в 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.
Именно значение остатка и предоставляет нам этот оператор.
Домашнее задание
Сегодня совсем байтовое домашнее задание. Весь код я вынес в новый для тебя онлайн-редактор. Изучи код еще раз и попробуй со всем поиграться.