Унарные операторы в JavaScript | Инкремент, декремент

JavaScript

В предыдущем уроке мы изучили все бинарные операторы и тернарные операторы. JavaScript также предоставляет унарные операторы, которым требуется только одна переменная.

Унарные операторы в JavaScript — это операторы, которые работают с одним операндом, который может быть переменной или литералом. Другими словами, унарные операторы — это операторы, которые имеют один операнд.

Например, чтобы присвоить двум переменным разные значения, содержащие положительные или отрицательные знаки, используются следующие операторы:

let x = -10; // Assign 'x' x negative 10.
let y = +20; // Assign 'y' y positive 20 (the plus is not required).

Арифметические операторы также могут быть выполнены с одним операндом с использованием унарных операторов. Например, оператор x = x+1 имеет тот же результат, что и выражение x++.

Типы унарных операторов в JavaScript

Список унарных операторов JavaScript приведен ниже:

ОператорЗначение
+Изменяет операнд на число.
Изменяет знак значения или инвертирует операнд.
++Увеличить значение на 1.
Уменьшить значение на 1.
deleteУдаляет свойство.
voidВозвращает неопределенное значение.
typeofВозвращает строку, представляющую тип данных.
~Побитовое НЕ
!Логическое НЕ

Давайте разберемся со всеми типами унарных операторов JavaScript по порядку.

Унарный оператор «плюс» в JavaScript

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

let x = +"20";

В приведенном выше операторе код приводит к тому, что строка «20» преобразуется в число с помощью унарного оператора плюс JavaScript, а числовое значение 20 сохраняется в переменной x. Если преобразование невозможно, возвращается NaN.

Унарный оператор отрицания

Когда унарный оператор минуса используется перед одиночным операндом, он выполняет унарное отрицание. Другими словами, он преобразует положительное значение в эквивалентное отрицательное значение и наоборот. Если операнд не является числом, то этот оператор пытается преобразовать его в 1.

Давайте рассмотрим несколько примеров программ, основанных на операторе унарного минуса в JavaScript.

Пример 1:

<script>
  let a = 40;
  let b = -a;
  document.write("Value of a: " +b);
</script>
Output:
       Value of a: -40

Пример 2:

<script>
  let a = "20";
  let b = -a;
  document.write("Value of a: " +b);
</script>
Output:
      Value of a: -20

Попробуйте сами

Пример 3:

<script>
  let a = "text";
  let b = -a;
  document.write("Value of a: " +b);
</script>

Оператор увеличения JavaScript (++)

Оператор инкремента в JavaScript — это унарный оператор, который увеличивает значение переменной на единицу. Проще говоря, он увеличивает число на 1. Он представлен как ++.

Оператор ++ можно использовать в двух формах:

  • Унарный оператор префиксного инкремента (префикс)
  • Унарный оператор постфиксного инкремента (Postfix)

1. Префикс (префикс):

Когда мы пишем оператор ++ перед переменной, это называется префиксным унарным оператором. При префиксном инкременте сначала выполняется инкремент, а затем возвращается новое инкрементированное значение.

Другими словами, префиксный оператор сначала добавляет 1 к значению операнда, а затем результат сохраняется в переменной с левой стороны. Общий синтаксис префиксного унарного оператора следующий:

++x;

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

Пример 4:

<script>
  let x = 10;
  let y = ++x; // prefix.
  document.write("x is " +x+ ", y is " +y);
</script>
Output:
       x is 11, y is 11

Первый оператор в коде скрипта присваивает x значение 10. Второй оператор в коде скрипта выполняет два разных действия:

  • Увеличивает x до 11.
  • Присваивает y новое увеличенное значение 11.

Пример 5:

<script>
  let x = "20";
  let y = ++x; // prefix.
  document.write("x is " +x+ ", y is " +y);
</script>
Output:
     x is 21, y is 21

Попробуйте сами

Пример 6:

<script>
  let x = "text";
  let y = ++x; // prefix.
  document.write("y is " +y);
</script>

2. Постфиксный инкремент (Postfix):

Когда мы пишем оператор ++ после переменной, это называется пост-инкрементом или постфиксным унарным оператором. При пост-инкременте оператор сначала возвращает значение операнда, а затем в конце выполняется инкремент.

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

x++;

Если операнд является строкой, он преобразуется в число. Если преобразование невозможно, возвращается NaN. Давайте рассмотрим пример программы, основанной на пост-инкрементном унарном операторе в JavaScript.

Пример 6:

<script>
  let x = 50;
  let y = x++; // suffix.
  document.write("x is " +x+ ", y is " +y);
</script>
Output:
     x is 51, y is 50

Как вы можете заметить, при использовании постфиксного оператора значение x сначала сохраняется в y, а затем x увеличивается на 1. Таким образом, конечное значение x равно 51, но конечное значение y остается равным 50.

Пример 7:

<script>
  let x = "30";
  let y = x++; // suffix.
  document.write("x is " +x+ ", y is " +y);
</script>
Output:
     x is 31, y is 30

Пример 8:

<script>
  let x = true, y = false, z = 2;
  let p, q, exp;
   p = ++x;
   q = y++;
   exp = x+y+++++z;

  document.write("x = " +x, "<br>");
  document.write("y = " +y, "<br>");
  document.write("z = " +z, "<br>");
  document.write("p = " +p, "<br>");
  document.write("q = " +q, "<br>");
  document.write("exp = " +exp);
</script>
Output:
       x = 2
       y = 2
       z = 3
       p = 2
       q = 0
       exp = 6 

В этом примере программы начальные значения x, y, z равны true, false и 2 соответственно. Если логическое значение равно true, оно преобразуется в 1. Если логическое значение равно false, оно преобразуется в 0.

1. Когда оператор p = ++x выполняется интерпретатором JavaScript, значение x сначала увеличивается на 1, а затем значение x отображается как 2 в браузере.

После инкремента значение x сохраняется в переменной p. Поэтому значение p также отображается как 51 (то же самое, что и значение x). Таким образом, эта операция произошла в следующей форме:

x = x+1;
p = x;

2. Когда оператор q = y++ выполняется интерпретатором, текущее значение y сохраняется в переменной q, поскольку оператор инкремента имеет постфиксную форму. Поэтому значение q отображается как 0.

После сохранения текущего значения y в q, значение y увеличивается на 2, поскольку y изменяется дважды в программе, а затем присваивается y. Поэтому значение y отображается в браузере как 2. Таким образом, эта операция происходит в два этапа:

q = y;
y = (y+1)+1;

3. При выполнении оператора exp = x+y+++++z значение x присваивается как 2, поскольку после приращения значение x теперь равно 2. Значение y увеличивается на 1, а затем ему присваивается как 1 в y, поскольку y++ находится в постфиксной форме.

Аналогично значение z также увеличивается на 1, а затем ему присваивается 3 в z. Сумма трех значений 2+1+ 3 будет сохранена в переменной c. Таким образом, выход равен 6.

Пример 9:

<script>
  let x = 20;
  let y = ++x * 10/x+++++x;
  document.write("x = " +x, "<br>");
  document.write("y = " +y, "<br>")
</script>
Output:
     x = 23
     y = 33

Эта программа сложнее предыдущей программы-примера. Итак, давайте разберемся с объяснением программы выше.

1. Когда ++x выполняется в числителе выражения, сначала значение x увеличивается на 1, а затем возвращается к выражению как 21, которое умножается на 10.

Итак, операция будет происходить следующим образом:

let y = 21 * 10/x+++++x; // x assigns the value of 21.

2. Далее, когда выполняется x++ в знаменателе выражения, значение x снова увеличивается на 1, но в выражении будет использоваться исходное значение 21 x, поскольку оно является пост-инкрементом.

Итак, следующая операция будет такой:

let y = 21 * 10/21+++x; // x assigns value of 21.

3. Окончательное присвоение x увеличивает значение x на 1, поскольку это преинкремент. Таким образом, значение x теперь равно 23, поскольку после постинкремента значение x возвращается как 22 в ++x.

Мы можем упростить это:

let y = 21 * 10/21+23; // x assigns value of 23.

4. Наконец, мы можем легко оценить умножение и деление слева направо и выполнить простое сложение. Таким образом, конечное значение x равно 23, а значение y равно 33.

Попробуйте сами

Пример 10:

<script>
  let x = 10;
  let exp = ++x * x++;
  document.write("exp = " +exp);
</script>

Оператор декремента (- -) в JavaScript

Оператор декремента (- -) в JavaScript — унарный оператор, уменьшающий значение переменной (операнда) на единицу. Он представлен как (– –).

Оператор – – вычитает 1 из значения операнда. Он встречается в двух формах:

  • Унарный оператор предекремента (префикс)
  • Унарный оператор постдекремента (Постфикс)

1. Предварительный декремент:

Когда мы пишем оператор – – перед переменной, это называется преддекрементным унарным оператором в JavaScript. В преддекрементном операторе сначала выполняется декремент, а затем возвращается новое декрементное значение.

Другими словами, префиксный оператор сначала вычитает 1 из операнда, а затем результат сохраняется в левой переменной. Общий синтаксис префиксного оператора следующий:

--x

Давайте рассмотрим несколько примеров программ, основанных на операторе предекремента в JavaScript.

Пример 11:

<script>
  let x = 10;
  let y = --x
  document.write("x is " +x+ ", y is "+y);
</script>
Output:
      x is 9, y is 9

Внутри кода скрипта первый оператор присваивает x значение 10. Второй оператор в скрипте выполняет два разных действия:

  • Уменьшает x до 9.
  • Присваивает y новое уменьшенное значение.

2. Постдекремент:

Когда мы пишем оператор – – после переменной, это называется постдекрементным унарным оператором в JavaScript. При постдекременте оператор сначала возвращает значение операнда, а затем в конце выполняется декремент.

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

x--;

Давайте рассмотрим пример программы, основанной на операторах постдекремента.

Пример 12:

<script>
  let x = 10;
  let y = x--;
  document.write("x is " +x+ ", y is "+y);
</script>
Output:
       x is 9, y is 10

Как вы можете заметить, при использовании постфиксного оператора значение x сначала сохраняется в y, а затем x уменьшается на 1. Таким образом, конечное значение x равно 9, но конечное значение y остается равным 10.

Давайте рассмотрим пример программы, основанной на операторах пре-, пост-инкремента и пре-, пост-декремента для лучшей практики.

Пример 13:

<script>
  let a = 1;
   ++a;
  let b = a++;
   a--;
  let c = --a;
  let x = a * 10/(b - c);
  document.write("a is " +a+ ", x is "+x);
</script>
Output:
      a is 1, x is 10

В этом уроке вы изучили унарные операторы в JavaScript с различными примерами программ. Надеюсь, вы поняли основные концепции операторов пре- и пост-инкремента, операторов пре- и пост-декремента.

Оцените статью
Adblock
detector