什么是 JavaScript 宏?

use*_*728 7 javascript macros sweet.js

最近我看到有人谈论JavaScript中宏的使用。我不知道这意味着什么,在 MDN 上查找文档后,我没有找到任何答案。这引出了我的问题 \xe2\x80\xa6

\n\n

什么是 JavaScript 宏?
\n如何/为何使用它们?
\n这是元编程的一种形式吗?

\n\n

带有示例和示例代码的答案将不胜感激。

\n

Jea*_*rin 4

正如评论中所发布的,它是 javascript 的宏系统。

这是在“预处理阶段”定义文本替换的一种方法。因此,您可以定义一个宏并在代码中使用它,然后通过 sweet.js 运行它们,输出将是带有文本替换的代码。

例子

macro swap {
  rule { ($a, $b) } => {
    var tmp = $a;
    $a = $b;
    $b = tmp;
  }
}

var a = 10;
var b = 20;

swap (a, b)
Run Code Online (Sandbox Code Playgroud)

通过 sweet.js 运行后,我们得到扩展的代码:

var a$1 = 10;
var b$2 = 20;

var tmp$3 = a$1;
a$1 = b$2;
b$2 = tmp$3; 
Run Code Online (Sandbox Code Playgroud)