JS tips

    Алгоритм получение результата А && B

    Если операнд A истинный (true, «string», someObj), результатом является B, иначе — А.
    То бишь код:

    if (a) {
    return a.member;
    } else {
    return a;
    }


    Может быть заменен на более компактный:

    return a && a.member;

    Алгоритм получение результата А || B

    Если операнд A истинный, результатом является A, иначе — B.
    Эта особенность может быть использована для присвоения дефолтных значений переменным:
    last = input || default_value;

    Создание объекта на лету

    obj = {fieldName: "a"}; — объект с полем fieldName
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 9

      –2
      Если первый оператор истинный результатом является операнд A, иначе B.
      Попапихивает google translate`ом.
        +6
        Ой, сам сглупил.
        Не воспринимайте мои комментарии серъезно вплоть до 10 янаваря.
        0
        Тяжело воспринимать необходимость поста после длинных каникул
          0
          Вы бы еще, автор, вспомнили var obj = obj || {};

            0
            Давно так пишу (удобно и быстро), только вот поговаривают, что это не очень хороший стиль, так что для меня вопрос о целесообразности такого подхода еще открыт.
            (это касается первых двух примеров)
              0
              кто поговаривает? как аргументирует?
                0
                Ну как бы инструкции такого вида: «return a && a.member;» могут быть непонятны начинающему программисту, или трудночитаемы для людей, сталкивающихся с таким впервые, т. к. надо сначала еще подумать — как же это так получается, что оно работает.

                Я вот после этого и думаю — использовать такие вещи или нет, но больше все-таки склоняюсь к «использовать» (вопреки общественному мнению, звучавшему когда-то на Хабре), как по мне, вот это: «last = input || default_value;» (мой любимейший способ записи) должно быть понятно каждому программисту, а если непонятно — нефиг с такими программистами работать (imho).
                  0
                  всё правильно думаешь, только как-то слишком сильно на эту тему комплексуешь…
                    0
                    || — это отличный трюк, очень интуитивный.
                    Но использовать && на практике… гхм.

                    /* а если непонятно — нефиг с такими программистами работать */

                    Обычно люди начинают с бытия идеалистами, а у вас, смотрю, обратный проццесс ;-)

              Only users with full accounts can post comments. Log in, please.