a || b // equals: a ? a : b
a ?? b // equals: a != undefined && a != null ? a : b
!'' // output: true
0 ?? 'a' // output: 0
0 || 'a' // output: "a"
'' ?? 'a' // output: ""
'' || 'a' // output: "a"
These methods can change the this point.
function test(arg1, arg2) {};
test.call(null, a1, a2);
test.apply(null, [a1, a2]);
var t = test.bind(null);
t();