As the title says: What is the difference between condensed arrays and literal arrays?
new Array(\"John\", \"Bob\", \"Sue\"); // condensed array
[\"John\",
The semantics of the array initialiser is in section 11.1.4 of the ECMA 262 5th edition spec. You can read it there. It says that the meaning of the initialiser is the same as if new Array were called. But there is one thing you can do with initialiser that you cannot with the constructor. Check this out:
> a = [3,,,,5,2,3]
3,,,,5,2,3
> a = new Array(3,,,,5,2,3)
SyntaxError: Unexpected token ,
I used in the initialiser what is known as an "elision".
The array constructor has a bit of flexibility of its own
a = new Array(10)
,,,,,,,,,
a = new Array(1,2,30)
1,2,30
So a single argument to the constructor produces an array of that many undefineds.