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.
| 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';
|
| 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';
|
| 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';
|