$.each(["foo","bar"],function(){console.debug(this);});
преобразует «foo» и «bar» типа строки в их эквивалент в строковом объекте.
тогда ...
$.each(["foo","bar"],function(i,e){console.debug(e);});
будет держать "Foo" и "бар" в их первоначальном строкового типа.
Интересно, почему $ .each делает преобразование? И, более того ... если это преобразование никогда не произойдет - оставите строки такими, какие они есть, будь они типа строк или строкового объекта?
Я считаю, что поведение JavaScript в этом вопросе вызывает функцию [call()] (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call), которая использует autoboxes primitives. –