JavaScript False Test

This test compares true/false in JavaScript with the C-sytle truthy/falsy behavoir. Additionally, isSet() function test is included to illustrate how to force expected OOP true/false behavoir. I also threw in an isEmpty() test, as an example of code using truthiness.

How to play: Click start test.

False and Falsy, WTF
Desc Code Test Result
false is false
var o = false;
                    
(! o)? 'false': 'true';
                    
true is true
var o = true;
                    
(! o)? 'false': 'true';
                    
null is falsy
var o = null;
                    
(! o)? 'false': 'true';
                    
undefined is falsy
var o = undefined;
                    
(! o)? 'false': 'true';
                    
0 is false
var o = 0;
                    
(! o)? 'false': 'true';
                    
1 is true
var o = 1;
                    
(! o)? 'false': 'true';
                    
'' is false
var o = '';
                    
(! o)? 'false': 'true';
                    
' ' is true
var o = ' ';
                    
(! o)? 'false': 'true';
                    
1-1 is false, numeric 0
var o = 1-1;
                    
(! o)? 'false': 'true';
                    
'1'-'1' is false, strings coerced to number and numeric 0
var o = '1'-'1';
                    
(! o)? 'false': 'true';
                    
'0'+'0' is true, strings concated
var o = '0'+'0';
                    
(! o)? 'false': 'true';
                    
0+'0' is true, strings concated
var o = 0+'0';
                    
(! o)? 'false': 'true';
                    
0+0 is false, numeric 0
var o = 0+0;
                    
(! o)? 'false': 'true';
                    
empty Object is true
var o = {};
                    
(! o)? 'false': 'true';
                    
empty Array is true
var o = [];
                    
(! o)? 'false': 'true';
                    
Force Expected False Behavoir with isSet()
Desc Code Test Result
false is set
var o = false;
                    
isSet(o)? 'set': 'not set';
                    
true is set
var o = true;
                    
isSet(o)? 'set': 'not set';
                    
null is not set
var o = null;
                    
isSet(o)? 'set': 'not set';
                    
undefined is not set
var o = undefined;
                    
isSet(o)? 'set': 'not set';
                    
0 is set
var o = 0;
                    
isSet(o)? 'set': 'not set';
                    
1 is set
var o = 1;
                    
isSet(o)? 'set': 'not set';
                    
Test if Objects & Arrays are Empty with isEmpty()
Desc Code Test Result
empty Object is true
var o = {};
                    
isEmpty(o)? 'empty': 'not empty';
                    
empty Array is true
var o = [];
                    
isEmpty(o)? 'empty': 'not empty';
                    
unempty Object is false
var o = {test: 1};
                    
isEmpty(o)? 'empty': 'not empty';
                    
unempty Array is false
var o = ['test'];
                    
isEmpty(o)? 'empty': 'not empty';