Все в JavaScript это объект; массивы, функции, строки, все. Кусок кода, который вы создали, совершенно корректен, хотя и немного сбивает с толку - есть гораздо лучшие способы сделать это
var str = '123';
str[1] === '2'; // true, as you've just discovered (if you're not in IE7)
// Better ways:
str.indexOf('2'); // 1
str.charAt(1); // '2'
str.substr(1, 1); // '2'
str.split(''); // ['1', '2', '3']
Лучшие способы сделать так, чтобы кто-нибудь еще читал ваш код (кто-то еще или вы через 6 месяцев), не считал, что str
- это массив. Это делает ваш код намного проще для чтения и поддержки