Приоритет операторов в JavaScript (часть 2) - Блог ITVDN
ITVDN: курсы программирования
Видеокурсы по
программированию
РУС
  • РУС
  • УКР

Заказать звонок

    Выбери свою IT специальность

    Подписка

    Заказать звонок

    +38 099 757 27 82
    РУС
    • РУС
    • УКР
    Arrow
    🌷Набор групп на обучение с ментором - FrontEnd, .NET, Python, Java, FullStack, QA.
    Arrow

    Приоритет операторов в JavaScript (часть 2)

    advertisement advertisement

    Продолжение описания.

    Статья является продолжением статьи "Приоритет операторов в JavaScript", здесь будет проанализирована работа операторов дикремента и инкремента, а также рассказаны особенности применения сокращенной формы арифметических операторов. 

    В случае, если в любом математическом выражении используется сразу несколько разных операторов, то порядок их выполнения будет определяется приоритетом. Всем известно, что операция умножения будет выполнятся в выражении раньше, нежели операция сложения. Но, поскольку в JavaScript существует гораздо больше операторов, крайне полезно ознакомиться с таблицей приоритетов. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence.


    Рассмотрим простой пример:

    <script type="text/javascript">

            var a = 3 + 4 * 5;

        alert(a);

    </script>

    Оператор умножения * имеет приоритет несколько выше, чем оператор сложения +, при этом не важно, что стоит после него. Поэтому операция умножения будет выполнена первой, ее операндами будут значения 4 и 5, результат умножения станет вторым операндом в операции сложения. Оператор присваивания = имеет наименьший приоритет, следовательно, операция присваивания будет выполнена после операции сложения. В итоге получим значение a = 23.

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

    var b = (3 + 4) * 5;

    alert(b);

    Теперь результат сложения будет первым операндом в операции умножения, и получим результат b = 35.

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

    Инкремент и декремент.

    Довольно часто возникает потребность провести увеличение или уменьшение значения переменной, изменить элемент массива, увеличив его или уменьшив на единицу, для этого используются специальные операторы:

    Инкремент ++, выполняет изменение значения переменной, увеличивая на единицу. Может принимать две формы: постфиксный и префиксный.

    Декремент --, выполняет изменяет значение переменной, уменьшая на единицу, и также принимает две вышеупомянутые формы.

    Ознакомимся с отличиями постфиксного и префиксного изменения переменной на примере инкремента.

    <script type="text/javascript">

         var myVariable1 = 1;

         var myVariable2

         myVariable1++; // myVariable1 = myVariable1 + 1;

         document.write("Значение переменной myVariable1 = " " + myVariable1 + "");

         ++ myVariable1; // myVariable1 = myVariable1 + 1;

         document.write("Значение переменной myVariable1 = " " + myVariable1 + "");

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

               myVariable2 = myVariable1++; // myVariable2 = myVariable1

         document.write("Значение переменной myVariable2 = " " + myVariable2 + "");

         document.write("Значение переменной myVariable1 = " " + myVariable1 + "");

    // В данном случае значение переменной myVariable1 увеличивается на 1, но в переменную myVariable2 передается старое значение. Иначе говоря, сперва происходит операция присвоения myVariable2 = myVariable1, а затем увеличения myVariable1 = myVariable1 + 1

            myVariable2 = ++ myVariable1; // y = myVariable1 + 1

        document.write("Значение переменной myvariable2 = " " + myVariable2 + "");

        document.write("Значение переменной myVariable1 = " " + myVariable1 + "");

    // В этом случае, вызов ++ myVariable1 сперва увеличит переменную, и затем вернет ее значение (увеличенное значение) в переменную myVariable2.

    </script>

    Как видим, особенностью инкремента является наличие у него постфиксной формы, которая срабатывает лишь после завершения той инструкции, в которой она использовалась, т.е. после первой встречающейся точки с запятой «;», которая сигнализирует о завершении инструкции JavaScript.

    Что касается декремента, принцип его работы идентичен инкременту, с отличием лишь в том, что происходит операция вычитания единицы от единственного операнда. Если он стоит перед операндом, он уменьшает его на единицу и возвращает уменьшенное значение, в случае размещения после операнда – уменьшает операнд, и возвращает прежнее неизмененное значение.

    Сокращенная форма.

    Кроме операторов увеличения и уменьшения на единицу (инкремента и декремента), для упрощения записи простых арифметических операций (по типу x = x + 3;) существуют следующие специальные операторы: +=, -=, *=, /=, которые работают по следующему принципу:

    <script type="text/javascript">   

         var myVariable1 = 9;

       myVariable1 += 3; // myVariable1 = myVariable1 + 3;

       document.write("myVariable1 += 3 = "" + myVariable1 + "");

       

       myVariable1 -= 3; // myVariable1 = myVariable1 - 3;

       document.write("myVariable1 -= 3 = "" + myVariable1 + "");

       

       myVariable1 *= 3; // myVariable1 = myVariable1 * 3;

       document.write("myVariable1 *= 3 = "" + myVariable1 + "");

       myVariable1 /= 3; // myVariable1 = myVariable1 / 3;

       document.write("myVariable1 /= 3 = "" + myVariable1 + "");

    </script>

    Применяя сокращенные операторы, важно помнить об их приоритете выполнения. В таблице приоритетов вы найдете приоритет сокращенных операторов ( +=, -=, *=, /=, %=, <<=, >>=, >>>=, &=, ^=, |= ) одним из самых низких. После них находится только оператор множественного вычисления « , ». Это означает, что действия, заложенные в эти операторы, будут выполняться после всех прочих из вашего выражения наравне с оператором присвоения.

    Использование коротких форм применения операторов позволяет существенно ускорить написание вашего сценария и при должном внимании упростить процесс его создания. Зачастую подобное использование операторов применяют в написании тела условных и циклических конструкций.

    КОММЕНТАРИИ И ОБСУЖДЕНИЯ
    advertisement advertisement

    Покупай подпискус доступом ко всем курсам и сервисам

    Библиотека современных IT знаний в удобном формате

    Выбирай свой вариант подписки в зависимости от задач, стоящих перед тобой. Но если нужно пройти полное обучение с нуля до уровня специалиста, то лучше выбирать Базовый или Премиум. А для того чтобы изучить 2-3 новые технологии, или повторить знания, готовясь к собеседованию, подойдет Пакет Стартовый.

    Стартовый
    • Все видеокурсы на 3 месяца
    • Тестирование по 10 курсам
    • Проверка 5 домашних заданий
    • Консультация с тренером 30 мин
    59.99 $
    Оформить подписку
    Базовый
    • Все видеокурсы на 6 месяцев
    • Тестирование по 16 курсам
    • Проверка 10 домашних заданий
    • Консультация с тренером 60 мин
    89.99 $
    Оформить подписку
    Премиум
    • Все видеокурсы на 1 год
    • Тестирование по 24 курсам
    • Проверка 20 домашних заданий
    • Консультация с тренером 120 мин
    169.99 $
    Оформить подписку
    Notification success