В javascript объявления обрабатываются первыми, но присваивание происходит по порядку. Ваш код эффективен:
var cards, j, q, k, a;
// Here, all variables exist but none have a value
// When cards is assigned an array, the values of j, q, k and a
// are still undefined.
cards = [2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,
8,9,9,9,9,10,10,10,10,j,j,j,j,q,q,q,q,k,k,k,k,a,a,a,a];
// Now the rest are given values
j = 10;
q = 10;
k = 10;
a = 11;