@vis0r

Какую роль играют 2 амперсанда стоящие вне условной конструкции в JS?

Разбираю чужой проект, пытаюсь понять синтаксис, ранее такого не встречал. Хотелось бы понять роль двойного амперсанда в этом месте.
case 'work_to_work_project':
          set_project_colour(window.project_colour),
          $(window).width() >= tablet && (size_media_container(), isotope_projects(), init_project_info_control()),
          fit_videos($('#project'));
          break;
  • Вопрос задан
  • 1391 просмотр
Решения вопроса 1
Denormalization
@Denormalization
Это можно переписать так:

if ($(window).width() >= tablet)
{
  size_media_container();
  isotope_projects();
  init_project_info_control();
}


Оператор && имеет особенность:
Если левая часть false, то правая часть не будет выполнена.
Просто введите в консоли:
test = true;
test && (alert(1), alert(2), alert(3));
test = false;
test && (alert(1), alert(2), alert(3));


И увидите разницу.

В данном конкретном случае, эта конструкция используется как сахарок, для вызова каких-то функций, если размер экрана больше таблета.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
chlp
@chlp
фулстек
&& возвращает tablet, если он преобразуется к false, иначе – возвращает (size_media_container(), isotope_projects(), init_project_info_control())

javascript.ru/boolean-operators
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы