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

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

    Підписка
    УКР
    • РУС
    • УКР

    Послідовність виконання операторів JavaScript (Частина I)

    advertisement advertisement

    Введение

    В предыдущих статьях мы познакомились с правилами последовательности выполнения операторов. После того, как вы научились пользоваться элементарными операторами, мы ознакомимся и определим различия между операторами, которые похожи, но имеют критические различия в языках программирования: равенства = и неравенства !=. Определим отличия операторов строгого и нестрогого сравнения и особенности их применения.

    Операторы JS


    Перед тем, как приступить к рассмотрению операторов, нам стоит познакомиться с логическими значениями, а именно логическим типом данных, который может принимать следующие значения: первое говорит об истинности условия (true), второе говорит о ложности или неистинности (false).

    Операторы, которые отвечают за сравнение двух операндов (их значений), как и другие операторы, возвращают значения либо true, либо false, которые зависят от результатов операции сравнения. Стоит отметить, что операнды такого типа чаще используются в условных и циклических конструкциях для создания пользовательского сценария.

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

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

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

    Давайте рассмотрим основные примеры работы данных операторов и определим ключевые особенности их работы.

    document.write(("2" == 1) + "
    "
    ); // false

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

    document.write((false == 0) + "
    "
    );// true, поскольку false превращается в 0

    document.write((true == 2) + "
    "
    ); // false, поскольку true превращается в 1

    document.write((true == "1") + "
    "
    ); // true, произошло преобразование обоих переменных в числовой тип данных

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

    document.write(("2" === 1) + "
    "
    ); // false

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

    document.write(("2" === "2") + "
    "
    ); // true

           document.write((false === 0) + "
    "
    );// false

           document.write((true === true) + "
    "
    ); // true

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

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

    document.write((NaN == NaN) + "
    "
    );// false

    document.write((NaN === NaN) + "
    "
    ); // false

    Если сравнивать значение null и undefined, то они будут равными друг другу, но не идентичными. 

           document.write((null == undefined) + "
    "
    );// true

    document.write((null == null) + "
    "
    );// true

    document.write((null === undefined) + "
    "
    ); // false

    document.write((undefined === undefined) + "
    "
    ); // true

    Операторы != (неравенства) и !== (неидентичности) определяют собой выполнение проверок, которые являются противоположностями для операторов == и ===, соответственно. Особенность заключается в операторе ! –, который осуществляет операцию опровержения утверждения, логического НЕ, следовательно, инвертирует привычное значение возвращаемого результата.

    Возвращаемым значением оператора != будет false, когда значения равны между собой, и true, когда неравны. Оператор !== возвращает значение false, если операнды идентичны, и true – когда неидентичны. 

    Операторы отношения

    Среди операторов отношения самыми часто используемыми являются операторы сравнения – используемые для определения больше ли одно значение другого или меньше. Познакомимся с каждым из них.

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

    Меньше (<)

    Возвращаемый результат выполнения оператора < равен true, при соблюдении условия, что первый его операнд меньше второго операнда, иначе возвращается false.

    Больше (>)

    Возвращаемый результат выполнения оператора > является true, при соблюдении условия, что его первый операнд будет больше второго, и false, когда большим является значение второго операнда.

    document.write(("2" > 1) + "
    "
    ); // true

    document.write(("2" > 2) + "
    "
    ); // false

    document.write((false < 1) + "
    "
    ); // true, преобразование false в 0

    document.write((false < "1") + "
    "
    ); // true, преобразование false в 0, строки "1" в число 1

    document.write((true < false) + "
    "
    ); // false

    document.write((null < undefined) + "
    "
    ); // false, преобразование типов в числа

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

    Меньше или равно (<=)

    Оператор <= вернет значение true, при этом первый его операнд может быть или меньше, или же быть равным второму, иначе мы получим false.

    Больше или равно (>=)

    Оператор >= вернет значение true, при этом первый его операнд может быть строго меньше второго, иначе возвращается false.

    document.write(("2" >= 2) + "<br/>"); // true, преобразование значения из строки в число, равенство

    document.write(("2" <= null) + "<br/>"); // false

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

    - когда значения первого и второго операндов числового типа, или же их значения преобразуются в числовой тип данных, сравнение происходит как численное;

    - когда значения первого и второго операндов строкового типа или выполняется их преобразование в строки, сравнение происходит как между строками;

    - когда первый операнд строкового типа, а второй – число, оператор сравнения пытается преобразовать значения строкового типа в числовой тип и произведет сравнение между числами, стоит отметить, что если нет возможности строку преобразовать в число, ее значение преобразуется в NaN, после чего мы получим false;

    document.write((2 > "abc") + "<br/>"); // false

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

    Кроме этого стоит помнить, что определение равенства при использовании операторов «<=» и «>=» выполняется только как исключение противоположного результата: «не больше» или «не меньше».

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

    КОМЕНТАРІ ТА ОБГОВОРЕННЯ
    advertisement advertisement

    Купуй передплатуз доступом до всіх курсів та сервісів

    Бібліотека сучасних IT знань у зручному форматі

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

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