Операторы с пометкой JavaScript

Учебник об очень редко используемой функции JavaScript: помеченные операторы

У JavaScript есть относительно неизвестная функциональность, позволяющая маркировать операторы.

Недавно я видел, как эта функция используется в Svelte для включения реактивных объявлений, которые пересчитываются всякий раз, когда переменные, объявленные в операторе, изменяются:

$: console.log(variable)

Они также позволяют использоватьблок операторов, еще одна функция JavaScript, которая позволяет вам определять блок всякий раз, когда вы можете определить оператор:

$: {
  console.log(variable)
  console.log('another thing')
  //...
}

Это может показаться странным, но это правильный JavaScript. Этот блок операторов назначается$ метка.

Компилятор Svelte внутренне будет использовать это для поддержки реактивных объявлений.

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

Вот простой пример, объясняющий, что я имею в виду.

Вызов break в любой из этих точек прерывает переключение, чтобы избежать запуска других случаев:

for (let y = 0; y < 3; y++) {
  switch (y) {
    case 0:
      console.log(0)
      break
    case 1:
      console.log(1)
      break
    case 2:
      console.log(2)
      break
  }
}

Это напечатает0 1 2к консоли, как и ожидалось.

Но что, если мы хотим вырваться изforкогда мы достигнемcase 1? Вот как:

loop: for (let y = 0; y < 3; y++) {
  switch (y) {
    case 0:
      console.log(0)
      break
    case 1:
      console.log(1)
      break loop
    case 2:
      console.log(2)
      break
  }
}

Это напечатает0 1к консоли.

Скачать мою бесплатнуюРуководство для начинающих по JavaScript


Больше руководств по js: