My original solutions are in blue.
One of my answers turned out to be wrong so I colored it red.
Shorter solutions provided by respondents are shown in green (crediting the person who first provided it).
Thanks for the plethora of great answers. Hope this was fun (and maybe even useful!)
1. var f is an array of functions. One of them takes no formal parameters: Invoke it.
while(a=f.pop())a.length||a(); (30) //evilpie
2. Variable a is an array. Make an array of the non-falsey values in a. (ECMA 5)
3. Variables a, b and c reference numbers. Verify b is exclusively bound by a and c without using >, < or arithmetic operators (+, -, *, /)
b==[a,b,c].sort(); (21) //fails for multi digit
Math.max(a,b,c)!=b&&Math.min(a,b,c)!=b; (38) //anony
4. Verify that x is true. Don’t use true, false or any other variable, value or function (apart from x)
x===!!x&&x; (11) //Chris S (duh!)
5. Swap the values of variables a and b without using another variable or property
a=[b,b=a]; (13) //(with thanks to @abozhilov)
6. Is n an integer?
7. x is an array of numbers. Get the maximum value in x
8. If b is not a member of array a, add it to the end of the array (ECMA 5)
9. Make a string consisting of string x repeated n times
new Array(n+1).join(x); (23) (courtesy of Prototype.js)
Array(n+1).join(x); (19) //fearphage (duh!)
for(s=”;n--;)s+=x; (19) //kangax
10. Concatenate arrays a and b without using concat
Some honorary mentions:
4. x==!!(x+’.’); //kangax
5. x^=y;y=x^y;x^=y; //anony – only works for integers
6. n+’.’==n; //anony
10. (a+”,”+b).split(); (17) //Dmitry A. Soshnikov – fails for nested arrays