昨天我在stackoverflow上回答一个问题,我自己的回答中有一些我不明白的......
这是我的答案中的代码:
var rx = /{([0-9]+)}/g;
str=str.replace(rx,function($0,$1){return params[parseInt($1)];});
现在,让我吃惊的是下面的代码也可以工作:
var rx = /{([0-9]+)}/g;
str=str.replace(rx,function($0,$1){return params[$1];});
我的问题:为什么不需要 parseInt ?JavaScript 在什么时候将 $1 转换为数字?它在正则表达式中还是在数组中?