В прошлой статье мы рассмотрели типы, которые может предложить JavaScript. Но мы не говорили об их операторах, в основном о том, что заставляет ценность действовать или подвергаться действию для получения результата. К ним относятся, помимо прочего, + (плюс), - (минус) и т. Д., И вы можете подумать, может ли строковый тип иметь оператор, что ж, ответ будет звучным да.

Примечание. Они не являются стандартизированными (официальными), это просто мой способ структурировать их.

Категории оператора

В JavaScript есть три категории операторов.

  • Унарный оператор
  • Бинарный оператор
  • Тернарный оператор

Это в основном связано с их функциональностью, с другой стороны, с их поведением.

Примечание. НЕ ВСЕ ОПЕРАТОРЫ ЯВЛЯЮТСЯ СИМВОЛАМИ

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

Это операторы, которые действуют на операнд (значение), то есть на одно значение. Пример: typeof, - (знак минус), ! (восклицательный знак) и т. Д. Ключевое слово typeof создает строковое значение, указывающее тип предоставленного вами значения.

console.log(typeof 3)// Number
console.log(typeof "")// String
console.log(-10)// -10
console.log(!true) // false

Бинарные операторы

Это операторы, которые действуют на два операнда (значения). Именно сюда попадает больше всего операторов. Они обычны, о некоторых вы, возможно, знаете. Пример + (плюс), - (минус).

console.log(2+2) // 4 
console.log(3-1) // 2
console.log(1-2) // -1

Тернарный оператор

Это операторы, которые работают с тремя операндами (значениями). Вероятно, это не первый раз, когда вы слышите об этом термине. Попробуйте угадать ... Ага, это вопросительный знак (?) и двоеточие (:). На данный момент это единственный оператор, у которого есть такая функциональность, мы узнаем, как он работает, позже в этой статье.

console.log(true ? "JavaScript" : "Java" ) // JavaScript

Типы операторов

Ниже я буду обсуждать следующие операторы. Это не единственные типы операторов.

  • Арифметика
  • Логический
  • Сравнение
  • Условный

Арифметика

Это операторы, выполняющие арифметические операции. К ним относятся сложение (+), вычитание (-), деление (/), умножение (*). Если вы выполнили базовую математику, эти символы и их значение вам известны, но есть и другие арифметические символы, функции которых вы не знаете.

Строки также могут использовать символ +. Это называется объединением.

console.log("Why" + "me")// Whyme
if you need space you will have to add it.
console.log("Why" + " me")// Why me

Например, если вы хотите найти остаток от операции деления или если вам нужно целое число (целое число) из числа с плавающей запятой (десятичное число, в JavaScript этого типа нет). Что ж, не ждите, я представляю операции Модуль (%) и Пол (//).

Оператор Floor, представляющий собой двойную косую черту (//), в основном игнорирует любое значение после десятичного знака, независимо от того, больше ли оно 0,5 или меньше 0,5.

console.log(3.5) // 3
console.log(5.2) // 5

Оператор Модуль, представляющий собой знак процента (%), возвращает остаток от операции деления. Это может быть полезно, если вы хотите узнать, является ли число четным или нечетным.

console.log(3%2)// 1
console.log(5%3)// 2

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

Эти операторы, которые работают с логическими значениями. Они включают и, или и, не. В JavaScript они представлены символами. Итак, и (&&), или (||), не (!).

Оператор && представляет собой логические и. Это бинарный оператор (т.е. работает с двумя значениями), и его результат верен только в том случае, если оба заданных ему значения верны.

console.log(false && false)// true
console.log(true && false)// false
console.log(2 < 4&& 3 > 4)// false
console.log(2 >= 4 || 8 == 8)// true
console.log(9 == "9" || 8 > 19)// true
console.log(9 === "9" && 4 > 5)// false

Оператор сравнения

Знаки ›и‹ являются традиционными символами «больше чем» и «меньше чем» соответственно. Это бинарные операторы. Их применение дает
логическое значение, которое указывает, верны ли они в данном случае.
Строки можно сравнивать таким же образом.

console.log(2 < 4)// true
console.log(2 > 4)// false 
console.log(4 >= 6)// false
console.log(5 <= 8 )// true

Условный оператор

Этот оператор является троичным (работает с тремя значениями). Он пишется с вопросом и двоеточием. Таким образом, это работает так: если оно истинно, будет возвращено значение до двоеточия (:) и после вопросительного знака (?), Если ложно, значение после двоеточия будет возвращен.

console.log(false ? "Python" : "JavaScript" )// JavaScript

Это похоже на простой способ написать условный оператор, не имеющий других условий.

Автоматическое преобразование типов

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

console.log(8 * null) // 0
console.log(“5” - 1 ) // 4
console.log(“5” + 1) // 4
console.log(“five” * 2)// NaN
console.log(false == 0)// true

Когда оператор применяется к «неправильному» типу значения, JavaScript будет
незаметно преобразовать это значение в нужный ему тип, используя набор правил, которые часто
не соответствуют вашим ожиданиям. Это называется преобразованием типа. Когда что-то, что не соответствует числу очевидным образом (например,
«пять» или неопределенное), преобразуется в число, вы получаете значение NaN.

При использовании == для сравнения значений одного и того же типа результат легко
предсказать. Результат должен дать вам истину, если оба значения совпадают, за исключением случая NaN. Но когда типы различаются, JavaScript использует сложный и запутанный набор правил, чтобы определить, что делать. В большинстве случаев он просто пытается преобразовать одно из значений в тип другого значения. Однако, когда значение null или undefined встречается с любой стороны от оператора, он возвращает значение true только в том случае, если обе стороны имеют одно из значений null или undefined.

console.log(null == undefined);
// → true
console.log(null == 0);
// → false

Короткое замыкание

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

Оператор || вернет значение влево, если true, и вернет вправо, если false .

console.log(true || false)// true
console.log(false || true)// false

Это не работает для логических значений, но работает для других значений. Правила преобразования строк и чисел в логические значения гласят, что 0, null, undefined, пустая строка, NaN считаются как false, а другие считаются как true.

console.log( 0 || 'I will return')
// I will return
console.log(null || 5)
// 5
console.log('' || 1000)
// 1000
console.log(8 || null)
// 8
console.log('I am not an empty string'|| 'It is well' )
// I am not an empty string

Оператор && вернет значение вправо, если истинно, и вернет левое, если ложь .

console.log(true || false)
// false
console.log(false && true)
// true
console.log(8 && 100)
// 100
console.log('' && 'Okay')
// ''
console.log( && )

Это полезно, когда у вас есть переменная, которая устанавливается динамически, в случае, если значение представляет собой пустую строку, null или undefined, которые все оцениваются как ложные; значение справа будет значением по умолчанию.

if the user variable is falsy i.e false. The guest string is used instead, otherwise user will return.
 
console.log(user || 'guest')
// guest

ложное (иногда обозначаемое как ложное) значение - это значение, которое считается ложным при обнаружении в« логическом контексте». - Сеть разработчиков Mozilla

Когда значение оценивается как истинное, оно считается истинным, в противном случае - как ложное. Это разговорный термин, поэтому это не технический термин. Значения, которые оцениваются как ложь: 0,0n (Bigint), null, NaN, false, undefined и пустая строка («»).

Есть типы операторов, которые не были рассмотрены в этой статье, но вы можете найти их здесь. Также важен приоритет в операторах, поэтому убедитесь, что вы знаете о них, чтобы предотвратить непреднамеренные ошибки.

Резюме

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

  • Унарный оператор
  • Бинарный оператор
  • Тернарный оператор

В зависимости от типов, на которые они действуют

  • Арифметика
  • Логический
  • Сравнение
  • Условный

Также мы смотрим на короткое замыкание и автоматическое преобразование. Так что будьте осторожны с автоматическим преобразованием, это путь к появлению ошибок.

Удачного кодирования !!!