Conditional variable assignment

Benchmark created by Mathias Bynens on


Test runner

Ready to run.

Testing in
TestOps/sec
x = x || y; when x is falsy
var foo; // foo === undefined
foo = foo || 'default';
// foo === 'default';
ready
x || (x = y); when x is falsy
var foo; // foo === undefined
foo || (foo = 'default');
// foo === 'default';
ready
!x && (x = y); when x is falsy
var foo; // foo === undefined
!foo && (foo = 'default');
// foo === 'default';
ready
x = x || y; when x is truthy
var foo = 'value';
foo = foo || 'default';
// foo === 'value';
ready
x || (x = y); when x is truthy
var foo = 'value';
foo || (foo = 'default');
// foo === 'value';
ready
!x && (x = y); when x is truthy
var foo = 'value';
!foo && (foo = 'default');
// foo === 'value';
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.