標有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教程: