Рубрики
Без рубрики

Короткий циркут JavaScript

Некоторое время назад я наткнулся на шаблон, который стал очень полезным. Это позволило мне чисто определить, был ли диагностический режим и ввести информацию в консоли. Tagged с JavaScript, WebDev, Development, Frontend.

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

Это красивый шаблон … и логичный. Это также вызывает у меня некоторое горе время от времени.

Шаблон

Вот код.

// isDebug state will allow the console.log fire, if true
let isDebug = false;

// here is the conditional
(isDebug) && console.log('debugging this code', { isDebug });

Это кажется довольно круто, и я думаю, что это так.

В основном, если isdebug является …

  • Верно , && (и) заставляет код справа на выполнение … Консоль.log Анкет
  • ложный , && (и) Логика в JavaScript не пытается выполнить код справа … Нет Консоль.log Анкет

А также Более

Тогда это было предложено мне … похожим шаблону.

let counts = {};

data.forEach(i => {
  // more code here
  (i.name in counts) || (counts[i.name] = 0);
  counts[i.name]++;
  });

По сути, этот код использует аналогичную логику для isdebug Логика выше.

  • Если имя в объекте счета , затем перейдите к следующей строке и добавьте одну.
  • Если имя не в объекте счета , затем добавьте клавишу с начальным значением нуля, которое затем увеличивается на одну на следующей строке.

С jshint.com мы получаем «ожидание вызова назначения или функции и вместо этого увидели выражение». На двух рассматриваемых строках здесь.

Ищу более подробную информацию, я нашел Эта документация о том, почему этот вопрос поднимается … Читая это, проблема поднимается для левой части рассматриваемого кода, полностью игнорируя потенциал кода с правой стороны.

Идя еще дальше, я нашел Эта документация Это показало этот шаблон как «короткий замыкание» и, при необходимости, AllshortCircuit это вариант для Linter.

Вывод

Это интересный, терриский шаблон, который, по -видимому, приобрел некоторую тягу: используя выражение, чтобы определить, какую ветвь следует следовать (или ** короткометражным из) кода.

Я скажу, что на личном уровне мне нравится первый шаблон для условной диагностической информации, в то время как второй шаблон казался неловким, но читаемым.

Оригинал: “https://dev.to/rfornal/short-circuiting-javascript-51b9”