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

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

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

    Подписка

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

    +38 099 757 27 82
    РУС
    • РУС
    • УКР
    Arrow
    🔥Последние дни акции. Весенний премиум на 15 месяцев.
    Arrow

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

    advertisement advertisement

    Введение

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

    Сперва познакомимся со специфической терминологией, которая используется при работе с операторами.Большинство операторов обозначаются символами пунктуации, такими как =, +, - и другими. Некоторые – специальными ключевыми словами, к примеру, delete и new. Но, как знаки пунктуации, так и ключевые слова обозначают обычные операторы, просто используют для этого разный синтаксис.


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

    Операнд – то, к чему будет применен оператор, или порой можно встретить название: «аргумент оператора».

    Оператор присваивания выглядит как знак равенства = :

       var a = 1, b = 2;

    В данной строке переменной "a" было присвоено значение 1, а переменной b – значение 2.

         var a = a + 2;

    В этой строке переменной "a" было присвоено ее значение, увеличенной на 2. Иначе говоря, сперва выполнится операция сложения текущего значения переменной a, результат которого будет пере-присвоен переменной a.

    Полезной особенностью данного оператора является использование его по цепочке:

         var a, b, c;

          a = b = c = 2 + 3;

    В результате работы последней строки всем трем переменным будет присвоено значение 5.

    Арифметические операторы

    Арифметические операторы используются для определения простейших математических операций над операндами, в качестве которых могут выступать как значения, так и переменные: плюс + , минус - , умножить * , поделить / , деление по модулю (определение остатка от деления) %.

    Большинство JavaScript-операторов работают с двумя операндами, следовательно, способны два простых выражения объединить в одно более сложное. Но JavaScript поддерживает несколько унарных операторов, которые преобразуют только одно выражение в другое, более сложное.

    Таким оператором является унарный минус, который изменяет знак числа на противоположный. В таком случае оператор «минус» в выражении -1 представляет собой унарный оператор и выполняет смену знака у своего единственного операнда 1.

    <script type="text/javascript">

            var x = 1;

            document.write(-x + ");

            document.write(-(-x) + ");

            document.write(-(x + 4) + ");

    script>

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

    <script type="text/javascript">

            document.write(+1);

            document.write(");

            document.write(+(1 - 2));

    script>

    Более распространенным применением унарного плюса является преобразование значения в число.

    В случае объединения двух выражений в одно более сложное используются бинарные операторы, иначе говоря, бинарным называют оператор, который применяется к двум операндам, к примеру, если оператор плюс будет стоять между двумя числами, он будет представлен в своей бинарной форме:

    <script type="text/javascript">   

         var a = 1, b = 2;

         document.write(a + b + ");

         document.write(b + a + ");

    script>

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

    var a = "2";

    var b = "3";

    alert(a + b); // "23", произошла конкатенация строк

    alert(+a + b); // "23", второй операнд - всё ещё стоковая переменная

    alert(+a + +b); // 5, число, поскольку оба операнда предварительно преобразованы в числа ((+a) + (+a))

    В то же время, если использовать оператор «минус», мы получим другие результаты:

    var a = "2";

    var b = "3";

    alert(a - b); // -1, произошло неявное преобразование типов

    Таким образом, мы подошли к тому, что создавая JavaScript-выражения, важно обращать внимание на типы данных, передаваемых операторам, и, как следствие, на типы данных, которые они возвращают. Стоит отметить, что различные операторы требуют, чтобы операнды, с которыми они работают, возвращали значения только определенного типа. Так, нельзя выполнить умножение строк, поэтому выражение var a = "text1" * "text2"; не является допустимым и приведет к ошибке. В то же время, выражение var a = "2" * "3"; вполне допустимо, потому что интерпретатор JavaScript будет пытаться по мере возможностей преобразовать выражение в требуемый тип данных, в нашем случае из строкового типа в числовой.

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

    <script type="text/javascript">

         document.write("2" / 2 + "); // 1, произойдет неявное преобразование строки в число

         document.write(((2 + 2) * 6) / "12" + "); // 2, произойдет неявное преобразование строки в число

         document.write(12 * 7 / 2 + "); // 42

         document.write(17 % 7 + "); // 3, возвращаем остаток от целочисленного деления

         document.write(21 / 3 - 1 + "); // 6, наблюдаем правильный порядок выполнения операций: сперва деление, затем нахождение разницы

    script>

    Если с работой операторов +, -, *, / в самом простом их применении мы были знакомы еще из младшей школы, то с оператором % стоит познакомиться детальней. Оператор деления по модулю % вычисляет остаток, получаемый при целочисленном делении первого операнда на второй, которые в курсе школьной математики именовались как делимое и делитель соответственно, а в результате самого деления мы получали частное и остаток от деления. Деление по модулю подразумевает возвращение остатка от деления.

    Например, выражение var a = 190 % 27; будет выполнено следующим образом:

    Остаток от деления

    Оператор деления по модулю зачастую применяют к целочисленным операндам, но он корректно работает и с вещественными значениями. Так, в итоге выполнения выражения var a = -6.3 % 3; переменной a будет присвоено значение -0.3.

    Кроме этого, стоит отметить следующие особенности вычислений в JavaScript:

     <script type="text/javascript">

           var a = 4,

           b = true;

           c = undefined,

           d = Infinity,

           e = 0,

           res = undefined;

            res = a * d;

            document.write(res + "); // Infinity, умножение числа на бесконечность возвращает бесконечность

            res = a + b;

            document.write(res + "); // 5, true преобразовывается в 1 и производится операция сложения

            res = a / e;

            document.write(res + "); // Infinity, деление числа на ноль возвращает бесконечность

            res = a * c;

            document.write(res + "); // NaN, умножение числа на неопределенный тип данных, вернет сигнализацию об ошибке в виде NaN - Not a Number

    script>

    В дальнейшем мы познакомимся с такими операторами как инкремент/декремент, операторами сравнения, равенства и идентичности, которые будут часто использоваться в написании клиентских сценариев c использованием языка JavaScript.

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

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

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

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

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