javascript 中的字符串占位符替换程序

string placeholder replacement program in javascript

function format(template, ...values) {
    return template.replace(/{(\d+)}/g, (_,i) => values[i]);
}

上面的解决方案returns一个格式化的字符串。例如 format("{0}{1}{2}{1}{0}", "k", "a", "y") returns “皮划艇”。

我知道JS中的字符串替换函数,这里我没有得到箭头函数

_ 在 fat arrow 函数中被称为 throwaway variable.

下划线符号 _ 是 JavaScript 中的有效标识符,在您的示例中,它被用作函数参数。

单下划线是一些 javascript 程序员用来向其他程序员表明他们应该 "ignore this binding/parameter" 的约定。由于 JavaScript 不进行参数计数检查,因此可以完全省略该参数。

这个符号经常(按照惯例)与粗箭头函数结合使用,使它们更加简洁和可读,如下所示:

const fun = _ => console.log('Hello, World!')
fun()

在这种情况下,该函数不需要 运行 的参数,因此开发人员使用下划线作为约定来表示这一点。同样的事情可以这样写:

const fun = () => console.log('Hello, World!')
fun()

不同之处在于第二个版本是一个没有参数的函数,但是第一个版本有一个名为_的参数被忽略了。虽然它们是不同的,但第二个版本更安全,如果稍微冗长(1 个额外字符)。

此外,考虑像

这样的情况
arr.forEach(function (_, i) {..})

其中_表示不使用第一个参数。