JavaScript標記語句
一個關於JavaScript中一個很少使用的功能的教程:標記語句
JavaScript有一個相對較為不知名的功能,它允許你對語句進行標記。
我最近在Svelte中看到這個功能的使用,它用於創建反應式聲明,這些聲明在語句中聲明的變量發生變化時重新計算:
1 | $: console.log(variable) |
它們還允許使用語句塊,這是JavaScript的另一個特性,它允許你在可以定義語句的地方定義一個塊:
1 | $: { |
這可能看起來很奇怪,但這是正確的JavaScript。這個語句塊被賦予了$
標記。
Svelte編譯器在內部使用這個功能來創建反應式聲明。
我從未在其他地方使用過這個功能,但它的主要用例是在不是最近的循環或switch的語句中跳出。
這裡有一個簡單的例子來解釋我的意思。
在這些點中的任何一個位置調用break
,都會跳出switch,以避免運行其他case:
1 | for (let y = 0; y < 3; y++) { |
這將正確地輸出0 1 2
到控制台。
但是,如果我們想在reache到case 1
時跳出for
循環呢?這是如何做到的:
1 | loop: for (let y = 0; y < 3; y++) { |
這將輸出0 1
到控制台。
tags: [“JavaScript”, “labeled statements”, “Svelte”]