2013-08-31 43 views
1

考慮這個例子:困惑CONCAT的行爲()和對象返回

var a, b, c, d; 
a = new Array(1,2,3); 
b = "dog"; 
c = new Array(42, "cat"); 
d = a.concat(b, c); 
document.write(d); // outputs 1, 2, 3, dog, 42, cat - makes sense 

我不明白的是:

alert(b[0]); // d 
alert(b[1]); // o 
.. etc. 

我明白concat()返回一個新的數組對象,但爲什麼它將字符串「狗」分成單獨的數組元素?我本來期望b[0]返回「狗」和b[1]返回undefined。對不起,如果這是一個愚蠢的問題:/

回答

3

這與concat方法無關。在concat調用中使用b變量作爲參數不會改變它。

您正在使用括號語法來訪問字符串項目,該項目(在現代瀏覽器中)與charAt方法的做法相同。

+0

啊,這是有道理的...謝謝! – Anon