Atualização (7 anos depois)
A referência citada na resposta original abaixo estava errada. Não é construído em uma função para isso, que é exatamente o kaiser sugere a seguir:toLocaleString
Então você pode fazer:
(1234567.89).toLocaleString('en') // for numeric input
parseFloat("1234567.89").toLocaleString('en') // for string input
A função implementada abaixo também funciona, mas simplesmente não é necessária.
(Achei que talvez tivesse sorte e descobrisse que era necessário em 2010, mas não. De acordo com esta referência mais confiável , toLocaleString faz parte do padrão desde ECMAScript 3ª Edição [1999], o que acredito ser o mesmo. teria sido suportado desde o IE 5.5.)
Resposta Original
De acordo com esta referência, não existe uma função incorporada para adicionar vírgulas a um número. Mas essa página inclui um exemplo de como codificá-lo você mesmo:
function addCommas(nStr) {
nStr += '';
var x = nStr.split('.');
var x1 = x[0];
var x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + ',' + '$2');
}
return x1 + x2;
}
Editar:
para fazer o contrário (converter string com vírgulas em número), você poderia fazer algo assim:
parseFloat("1,234,567.89".replace(/,/g,''))