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