Основные операторы
Операторы бывают
- унарные
+1, -1, а++, а--, ++а, --а, typeof 2.
Да, typeof тоже оператор
- бинарные
1 + 1, 4 * 3, 13 % 5
- тенарный
такой оператор один-единственный. это условие
а == 3 ? 3 : 0
смысл этой записи: если а равно трём, тогда возвращается три, иначе - ноль
Любой оператор возвращает значение.
Например, 5 + 3 возвращает 8.
typeof 2 возвращает number
То, к чему применяется оператор, называется операнд
Особенности некоторых операторов
Плюс +
1. суммирует числа
2 + 2 возвращает 4
2. слагает строки и превращает в строку всё, к чему строка прибавляется
"2" + 2 возвращает "22"
3. унарный плюс превращает строку в число
+"2" возвращает 2
Все остальные арифметические операторы стараются привести операнд к числу
Несложные задачи
1. Что выведет данный код
"2" + 1;
+"2" + 1;
"2" - 1;
2. Что выведет данный код
"3" + 1 + 1;
1 + 1 + "3";
Взятие остатка %
Возвращает остаток от деления
26 % 5 возвращает 1
13 % 5 возвращает 3
Пример использования
Например, чтобы правильно указывать окончание "день - дня - дней"
var n = prompt("Введите число дней", "");
var k = n % 10;
if (k == 1) {
alert("Вы ввели " + n + " день");
}
else if (k > 1 && k <= 4) {
alert("Вы ввели " + n + " дня");
}
else if (k == 0 || k > 4) {
alert("Вы ввели " + n + " дней");
}
Равно =
= - это присвоение
var k = 24;
== - это сравнение, но без учёта типа. Возвращает булево значение true или false
false == 0; // true
[] == false; // true
"" == 0; // true
=== - это сравнение с учётом типа. Возвращает false если или значение или тип величин не совпадают
0 === false; // false
Инкрементация и декрементация
Здесь просто. Инкрементация увеличивает на единицу, декрементация уменьшает. Нужны для перебора элементов массива:
for( var i = 0; i < arr.length; i++) {
// здесь что-то делаем с элементом массива
}
Инкрементация и декрементация бывают префиксная и постфиксная.
Префиксная это понятно. Вначале переменную увеличили (уменьшили) на один, потом вернули.
Проблему вызывает постфиксная инкрементация/декрементация, когда переменная увеличивается или уменьшается на 1, но возвращается её старое значение. Почти 700 комментариев к теме связаны именно с этой её особенностью.
В общем, такое поведение нужно просто принять
var a = 2;
alert( a++); // 2 - возвращает значение до увеличения
alert( a ); // 3 - возвращает новое значение после увеличения
Приоритет операторов
Статья на MDN https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Operators/Operator_Precedence
Там же есть таблица приоритетов.