1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
false || {};
true && {};
true || console.log( 'effect' );
false && console.log( 'effect' );
// effect
false || console.log( 'effect' );
true && console.log( 'effect' );
console.log( 'effect' ) || {};
console.log( 'effect' ) && {};
const foo = {
get effect () {
console.log( 'effect' );
},
get noEffect () {}
};
// accessed - no effect
(false || foo).noEffect;
(true && foo).noEffect;
(true || foo).effect;
(false && foo).effect;
// effect
(false || foo).effect;
(true && foo).effect;
// assigned - no effect
(false || {}).foo = 1;
(true && {}).foo = 1;
// effect
(false || null).foo = 1;
(true && null).foo = 1;
// called - no effect
(false || (() => {}))();
(true && (() => {}))();
// effect
(true || (() => {}))();
(false && (() => {}))();
(false || (() => console.log( 'effect' )))();
(true && (() => console.log( 'effect' )))();
// call return value - no effect
(false || (() => () => {}))()();
(true && (() => () => {}))()();
// effect
(true || (() => () => {}))()();
(false && (() => () => {}))()();
(false || (() => () => console.log( 'effect' )))()();
(true && (() => () => console.log( 'effect' )))()();
|