строка и число всегда передаются по значению
все остальное по ссылке
var a = 1, 
     b = a;  // присваивается значение
b = 2; 
console.log(a, b); // 1, 2
var a = {},
     b = a;  // присваивается ссылка на объект
a.a = 1;
b.a = 2;
console.log(a.a, b.a) // 2, 2
a.a и 
b.a, это одна и таже переменная, потому как 
a и 
b ссылаются на один и тот же объект