строка и число всегда передаются по значению
все остальное по ссылке
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 ссылаются на один и тот же объект