No gusto de pasar variables con datos importantes por el location bar por razones de seguridad, pero trabajando en un proyecto me tocó el caso que debía usar javascript para capturar las variables enviadas. Hasta ese momento no había necesitado del efecto, así que busqué -infructuosamente- el cómo hacerlo. Los ejemplos que encontré me resultaban inútiles, porque eran muy específicos para los casos estudiados. Acá mi versión de cómo capturar tales parámetros.

Veamos el siguiente ejemplo:

http://junihh.com/?usuario=junihh&nacionalidad=dominicano

La url consta de dos parámetros pero en la forma como lo parcearemos podremos recibir cuantos estén disponibles, similar a como funciona "$_GET" de PHP. Declaramos también la variable "obj" que necesitaremos más adelante.

var loc = String(window.location.search).substring(1);
var obj = {}; 

Guardamos los parámetros en una cadena, tomando como referencia el símbolo "&" que se usa para concatenar cada key de la url.

var par = loc.split('&');

A partir de este punto ya todo el proceso será más simple. Solo necesitamos iterar entre todos los parámetros, guardando los key/value en la variable "obj".

for ( var i = 0, c = par.length; i < c; i++ )
{
    var p = par[i].split('=');
    obj[ p[0] ] = p[1];
};

Ahora encapsulemos todo en una función para usarlo cómodamente en nuestros proyectos:

function locationVars ()
{
    var loc = String(window.location.search).substring(1);
    var obj = {};

    if ( loc )
    {
        var par = loc.split('&');

        for ( var i = 0, c = par.length; i < c; i++ )
        {
            var p = par[i].split('=');
            obj[ p[0] ] = p[1];
        };
    };

    return obj;
};

Entonces lo probamos:

console.log( locationVars() );  
// RESPUESTA: {usuario: 'junihh', nacionalidad: 'dominicano'}

console.log( locationVars().usuario );  
// RESPUESTA: junihh

console.log( locationVars().nacionalidad );   
// RESPUESTA: dominicano

Listo. Puede ser servido frío y con mucho aderezo. ;-)