Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Не понял короткую запись (https://javascript.ru/forum/dom-window/78553-ne-ponyal-korotkuyu-zapis.html)

Янковиц 02.10.2019 11:49

Не понял короткую запись
 
Есть короткая запись:
'hover' === f.event && (f.event = 'mouseover'), 'click' === f.event && (f.event = 'focus'), 'mouseover' === f.event ? g = 'mouseout' : 'focus' === f.event && (g = 'blur')

Помогите её понять

SuperZen 02.10.2019 12:26

<script>

  const f = {
    event: 'hover'
  }

  if ('hover' === f.event) {
    f.event = 'mouseover'
  } else if ('click' === f.event) {
    f.event = 'focus'
  }

  if ('mouseover' === f.event) {
    g = 'mouseout'
  } else if ('focus' === f.event) {
    g = 'blur'
  }

  console.log(f, g)

</script>

Янковиц 02.10.2019 12:29

Спасибо большое

ksa 02.10.2019 12:31

Цитата:

Сообщение от Янковиц
Помогите её понять

Там особо и понимать не нужно... Явный нидзястайл.
Используется особенность логической операции
Цитата:

Логическое И (&&)
expr1 && expr2

Возвращает expr1, если оно может быть преобразовано к false; в ином случае возвращает expr2. Так что, при вызове с булевыми значениями, && вернет true только если оба операнда истинны, иначе false.
https://javascript.ru/boolean-operators
Для изменения значения у
f.event
// и
g


Часовой пояс GMT +3, время: 16:23.