1

昨天我在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 转换为数字?它在正则表达式中还是在数组中?

4

1 回答 1

0

那是因为 javascript 将索引读取为字符串

array[1], 将array['1']在被读取之前转换为

同样的方法object['first']将起作用

于 2012-07-12T16:56:24.903 回答