2012-07-12 29 views
1

昨天我回答計算器上的問題,有件事情我不我自己的答案明白...正則表達式:是字符串還是數字返回的數字匹配?

參考文獻:the thread in question,並my fiddle

這裏是我的答案代碼:

現在 ​​

,什麼讓我驚訝的是,下面的代碼工作過:

var rx = /{([0-9]+)}/g; 
str=str.replace(rx,function($0,$1){return params[$1];}); 

我的問題:parseInt怎麼不需要? JavaScript在什麼時候將$ 1轉換爲數字?它是在正則表達式還是在數組中?

+3

您是否嘗試過使用['typeof']( https://developer.mozilla.org/en/JavaScript/Reference/Operators/typeof)? – Wex 2012-07-12 16:53:43

+0

doh ...不,我應該從那裏開始。我只是試過,它說的是弦。所以看起來陣列1和'1'是一樣的。 – Christophe 2012-07-12 16:58:08

+0

我認爲'Array'是'Object',但是對只包含非負數的鍵進行了特殊處理。 – nhahtdh 2012-07-12 16:59:24

回答

0

這是因爲JavaScript的讀取索引作爲一個字符串

array[1],將被讀取

用同樣的方法之前被轉換成array['1']object['first']將工作

+0

所以使用parseInt聽起來很愚蠢。我已在其他帖子上更新了我的答案。謝謝...每天學習。 – Christophe 2012-07-12 17:08:17

相關問題