Операторы JS
В этой статье рассмотрим основные операторы JS: от самых базовых математических до более специфичных. Узнаем, как использовать логические и битовые операции, что такое унарный оператор и в каком порядке выполняются операторы (таблица приоритета операторов). В результате использования оператора присваивания, левому операнду от знака присваивания Выполнить присваивание можно следующими способами: 1. Обычное присваивание: 2. Присваивание с арифметическим действием: Пример использования присваивания с арифметикой: 3. Присваивание с битовыми операциями: Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека фронтендера» Интересно, перейти к каналу Для присваивания сразу нескольких объектов значениями из массива пользуются деструктуризацией. В общем виде деструктуризация записывается так: Количество переменных в левой части может: Существует два вида сравнения: с приведением типа переменных и без. С приведением типа переменных к одному: Без приведения типов: В JS поддерживаются следующие виды арифметических операторов: Любая битовая операция представляет переданное число в виде двоичного. Хотя действия обрабатывают двоичные число, но возвращаемое значение представлено обычным десятичным числом. Битовые операции представляют собой следующий набор операторов: Чтобы выполнить битовый сдвиг, используйте один из методов: Также эти операторы можно использовать с оператором присваивания Логические операторы чаще всего применяются для создания условий. В JS применять логические операторы можно ко всем типам данных. После применения операторов возвращается значение Распространенные виды логических операторов: Сокращенная оценка гарантирует правильный результат без лишних вычислений. Позволяет выполнять сокращенные вычисления с помощью правил: Операция сложения применима и к строковым типам данных для объединения операндов в одну строку. Пример использования оператора Можно использовать сокращенную запись Тернарный оператор представляет собой сокращенную запись условия. Общий шаблон оператора выглядит так: Пример использования тернарного оператора: Запятая помогает определить ту последовательность действий, которая должна быть выполнена за один раз. Например, за один проход в цикле необходима итерация для двух переменных: Стоит учитывать, что стоящие через запятую вычисления будут возвращать только последнее значение. Унарные операторы – это те, которые используют только один оператор. Примеры таких операторов: Оператор удаляет элемент массива по индексу, а также удаляет свойство из объекта. Стоит быть внимательнее при удалении элемента массива с помощью Оператор Оператор Операторы отношения проводят сравнения двух операндов и возвращают С помощью оператора Проверяет тип объекта и указанный тип. Возвращает Каждый оператор обладает собственным свойством приоритета, что влияет на порядок вычислений выражений. В таблице ниже перечислены все операторы и их приоритет в порядке уменьшения. *** В этой статье мы разобрались с основными моментами работы операторов в JS, определили как использовать логические и битовые операции, узнали что такое унарный оператор и какой приоритет у каждого из них.Операторы присваивания
=
устанавливается значение правого.
let a = 5; let x = a; console.log(a,x);// 5 5
+=
– для прибавления значения;-=
– вычесть правое значение из левого;*=
– умножить на операнд;/=
– разделить и записать значение в правый операнд.
let a = 5; let sum = 1; sum += a; // 6 let sub = 6; sub -= a; // 1 let mul = 2; mul*= a; // 10 let div = 15; div/=a; // 3 console.log(sum, sub, mul, div); // 6 1 10 3
&=
) – побитовое И выполняет И с каждым битом правого и левого операнда, записывая значение в правый операнд;^=
) – побитовое исключающее ИЛИ по аналогии выполняет побитно исключающее ИЛИ, результат в правом операнде;|=
) – побитовое ИЛИ.
let and = 101; and &= 100; console.log(and); // 100 let xor = 101; xor ^= 10; console.log(xor); // 111 let or = 100; or |= 10; console.log(or); // 110
Деструктуризация
let array = [1,2,3,4,5]; let [first,second] = array; console.log(first); // 1
undefined
в своей переменной.Операторы сравнения
==
) – true
при равных значениях, причем типы могут быть разными (можно сравнить число и строку);!=
) – true
, если операнды не равны по значению;>,>=
) – возвращает true
, если левый операнд больше/или равен;<,<=
) – true
, если левый операнд меньше/меньше или равен.
console.log(false == 0); // true console.log('2' != 2); // false console.log( 5 > '3'); // true console.log('2' < true); // false
===
) – true
, если операнды равны по значению и по типу;!==
) – true
при разных операндах или их типах.
console.log(1 !== 0); // true console.log('2' === 2); // false
Арифметические операторы
Сложение
+
x + y
Вычитание
—
x – y
Умножение
*
x * y
Деление
/
x / y
Остаток от деления
%
9 % 4 вернет значение 1
Инкремент
++
6++ вернет 6, а после выполнит инкремент. ++6 выполнит инкремент и вернет 7.
Декремент
—
6— вернет 6, а после выполнит декремент. —6 выполнит декремент и вернет 5.
Возведение в степень
**
5** 2 вернет 25
let a = 16; let b = 4; console.log(a + b); // 20 console.log(a * b); // 64 console.log(a % b); // 0 console.log(a ** (b/2)); // 256
Битовые (поразрядные) операторы
Битовые логические операторы
x & y
) – для каждого бита выполняется операция И.x | y
) – для каждой пары битов выполняется ИЛИ.~ х
) – инверсия битов.x ^ y
) – исключающее ИЛИ, единица в битах там, где значение пары битов разное (1 и 0).
let a = 10; // 1010 let b = 3; // 11 console.log(a & b); // 2 => в двоичной системе 10 console.log(a ^ b); // 9 => в двоичной системе 1001
Битовые операторы сдвига
<<
– битовый сдвиг влево, первые биты отбрасываются, слева дополняется нулевыми битами;>>
– битовый сдвиг вправо, правые биты отбрасываются, начало заполняется копией последнего левого бита;>>>
– сдвиг вправо с заполнением слева нулевыми битами.
// 23 == 10111 console.log(23<<2); // 1011100 console.log(23>>2); // 101 console.log(23>>>2); // 101
=
. Например:
let a = 23; a <<= 2; // 1011100
Логические операторы
true
или false
.||
– логическое ИЛИ. Возвращает true, если хотя бы один из элементов true
.&&
– Логическое И. Вернет true
только в том случае, если оба элемента true
, иначе – false
.!
– Оператор НЕ. Инверсия элемента: при true
– вернет false
.
let a = true; let b = 0; // false console.log(a && b); // 0 console.log(b || a); // true console.log(!b); // true
Сокращённая оценка
false && anything
– всегда возвращает false
;true || anything
– всегда возвращает true
.
let a = 10; let b = 15 || (a=1); console.log(a); // 10
Строковые операторы
+
:
let string_1 = 'Hello'; let string_2 = 'world'; console.log(string_1+' '+string_2+'!'); // Hello world!
+=
.Условный (тернарный) оператор
условие? значение1 : значение2
условие
Истина, то вся конструкция будет возвращать значение1
:
, т. е. значение2
let name = 2>3 ? 'Marina' : 'Dasha'; console.log(name); // 'Dasha'
Оператор «запятая»
let arr = [[1,2,3],[4,5,6],[7,8,9]]; for(let i=0,j =0; i<arr.length;i++,j++){ console.log(arr[i][j]) }
let a = 'Hello'; let b = (a + ' ', a + 'world'); console.log(b); // Helloworld
Унарные операторы
delete
, typeof
, void
.delete
Delete
возвращает true
, когда операцию удаления можно выполнить, false
в других случаях. Например:var
, let
;
let number = 25; let object= new Object(); object.size=15; object.title = 'Delete object'; console.log(delete object.size); // true console.log(delete number); // false delete object.size; console.log(object); // { title: 'Delete object' }
Удаление элементов массива
delete
. Данная операция не влияет на размер массива, удаляется только элемент. Также удаленный элемент станет undefined
и будет недоступен для операций. Оператор typeof
typeof
возвращает строку со значением типа операнда.
let number = 25; let object= new Object(); let func = function(){}; console.log(typeof number); // "number" console.log(typeof object); // "object" console.log(typeof func); // "function"
Оператор void
void
вычисляет любое выражение, которое ему было передано, и всегда возвращает undefined
. С помощью оператора можно создать сразу же вызываемую функцию:
void function printSometing() { console.log('Something') }() console.log(typeof printSometing) // undefined
Операторы отношения
true
или false
.Оператор in
in
проверяется наличие свойства в объекте или элемента в массиве. Возвращает всегда булева значения.
let array = [1,2,3]; console.log(15 in array); // true console.log(1 in array); // false
Оператор instanceof
true
или false
.
let array = []; console.log(array instanceof Array); // true console.log({} instanceof Object); // false
Приоритет операторов
Приоритет
Тип оператора
Оператор
19
Группировка
( … )
18
Операторы доступа к элементам списка, свойствам функция new с аргументами, вызов функции
obj.title array[1] new …(…) func(params)
17
Функция new без аргументов
new …()
16
Постфиксный инкремент и декремент
…++…—
15
Логическое НЕ,побитовое отрицание, префиксный инкремент и декремент, унарные функции typeof, void, delete
!~++…—…typeofvoiddelete
14
Степень числа
**
13
Умножение, деление, остаток от деления
*/%
12
Сложение, вычитание
+-
11
Побитовые сдвиги
>><<>>>
10
Меньше, меньше или равно, больше, больше или равно, in, instanceof
<<=>>=ininstanceof
9
Равно, неравно, строго равно, строго неравно
==!====!==
8
Побитовое И
&
7
Побитовое ИСКЛЮЧАЮЩЕЕ ИЛИ
^
6
Побитовое ИЛИ
|
5
Логическое И
&&
4
Логическое ИЛИ
||
3
Тернарный оператор
consotion ? value1 : value2
2
Присваивание,присваивание с арифметическим оператором, присваивание со сдвигом, с битовой или логической операцией
= +=, -=, *=, /= <<=, >>=, >>>= &=, ^=, |= &&=, ||=
1
Запятая
,
Материалы по теме
- 3 views
- 0 Comment