Skip to content

6. Operators (операторы)

Igor Demin edited this page Nov 3, 2023 · 6 revisions

Операторы

Оператор - это встроенная функция которая как и обычная функция выполняет какие-то действия и возвращает значение. В этом разделе будут:

  • Операторы
  • Операнды
  • Унарные и бинарные
  • Инфиксная, префиксная и постфиксная записи

Основные операторы

+ - * / - Арифметические

=== !== <=, >= - Сравнения

! && || - Логические (не, и, или)

= - Присваивания

Текстовые операторы typeof - проверить тип значения instanceof - проверить принадлежность объекта к тому или иному классу new - создаёт новый экземпляр объекта delete - удалить св-во в объекте

Операнды или аргументы

a = 10 тут a и 10 это операнды или аргументы, левый и правый, на angl - left hand и right hand Встроенные функции выглядят примерно так, на примере a = 10:

function =(переменная, выражение) { // переменная тут это "a", а выражение просто число "10"
  1. Получение результата выражения
  2. Поиск переменной по имени // имя тут "a"
  3. Присваивание результата выражения переменной // присваиваем "10" переменной "a"
  4. Возврат результата выражения
}

Унарные и бинарные операторы

Унарные операторы - это операторы у которых только один аргумент(операнд).

a++ - увеличивает значение переменной на единицу
+a - с помощью этого оператора можно конвертировать например строку в число
delete obj.a - это тоже унарный оператор, он удаляет св-во объекта
tyoeof a - определяет тип переменной
new Object() - создаёт новый экземпляр объекта

Бинарные операторы - это операторы у которых всегда два аргумента(операнда). Несколько примеров:

a = 5
a + b
a += 5 // увеличение значения на определенное число и присваиваем новое значение переменной
a === b // такой оператор сравнивает и присваивает значение, а === сравнивает еще и тип, т.е. если сравнить строку 5 и число 5 то получим false
a && b

Формат записи операторов

Инфиксная запись - это когда оператор находится между операндами(агрументами)

a = true
a + b
a += b
a || b
a > b

Префиксная запить - когда оператор находится перед операндом

++a // у этого есть и еще постфиксная запись - a++
delete obj.a
typeof a

Постфиксная запись - когда оператор идёт за операндом

a++
myFunction()

Приоритетность выполнения операторов

Приоритет операторов в JS
Но на самом деле можно логически понять в каком приоритете будут выполняться операторы.

a + b * c / d - e // всё так же как в математике
a + ((b * c) / (d - e)) // так же как в математике можно изменить приоритет скобками

Логические операторы

! - префиксный оператор не т.е. всегда пишется перед операндом. Boolean всегда возвращает true или false / && и || - бинарные операторы, могут использоваться вместе, возвращают значение одного из операндов.

Ложные значения

Это значения которые при приведении к логическому типу Boolean покажут false. Привести любое значение к Boolean можно специальной функцией Boolean(value) -> false, следующие значения считаются ложными в JS:

false
0
''
undefined
null

ПРИМЕР:

console.log(Boolean(0))

Практика с typeof

console.log(typeof(10)) // number
console.log(typeof 10 === 'number') // true так можно проверить тип переменной

let isUndefined
console.log(isUndefined) // undefined
console.log(typeof isUndefined === 'undefined') // true