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

javascript中的字符串占位符替换程序,javascript,regex,string,arrow-functions,Javascript,Regex,String,Arrow Functions,上述解决方案返回一个格式化字符串。例如,格式{0}{1}{2}{1}{0},k,a,y返回kayak 我知道JS中的字符串替换函数,在这里我没有得到箭头函数,胖箭头函数称为一次性变量 下划线符号是JavaScript中的有效标识符,在您的示例中,它被用作函数参数 单下划线是一些javascript程序员用来向其他程序员指示他们应该忽略此绑定/参数的约定。由于JavaScript不进行参数计数检查,因此可以完全忽略该参数 按照惯例,此符号通常与胖箭头函数一起使用,以使其更加简洁易读,如下所示: f

上述解决方案返回一个格式化字符串。例如,格式{0}{1}{2}{1}{0},k,a,y返回kayak


我知道JS中的字符串替换函数,在这里我没有得到箭头函数,胖箭头函数称为一次性变量

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

单下划线是一些javascript程序员用来向其他程序员指示他们应该忽略此绑定/参数的约定。由于JavaScript不进行参数计数检查,因此可以完全忽略该参数

按照惯例,此符号通常与胖箭头函数一起使用,以使其更加简洁易读,如下所示:

function format(template, ...values) {
    return template.replace(/{(\d+)}/g, (_,i) => values[i]);
}
const fun = _ => console.log('Hello, World!')
fun()
在这种情况下,函数不需要参数来运行,因此开发人员使用下划线作为约定来表示这一点。同样的事情可以这样写:

function format(template, ...values) {
    return template.replace(/{(\d+)}/g, (_,i) => values[i]);
}
const fun = _ => console.log('Hello, World!')
fun()
不同之处在于,第二个版本是一个没有参数的函数,但第一个版本有一个名为u的参数被忽略。但这两个版本是不同的,第二个版本更安全,如果稍微详细一点,则增加1个字符

也考虑一个类似

的例子。
const fun = () => console.log('Hello, World!')
fun()

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

第一个参数只是没有使用。但是i值是如何递增的?我的意思是我无法理解占位符是如何被箭头函数的值替换的。第二个参数是捕获组。{0}将捕获0,例如,因此传递给format的第二个参数将是replacement我认为这被错误地标记为重复问题。正则表达式匹配像{0},{0}将是{0}这样的结构,整个正则表达式和i将是0,第一个捕获组,arrow函数返回值[0],用于替换{0}使用k.i尝试删除下划线并运行输出中未定义的解决方案,如果可能,请细分整个解决方案solution@BalaKrishnaKesani这是因为在这种情况下,我将是匹配整个正则表达式的子字符串,您应该看看replace with a function是如何工作的。