Truthy and Falsy Expressions

In JavaScript, Truthy expressions evaluate to boolean true value and Falsy expressions evaluate to boolean false value.

Unlike other programming languages, truthy and falsy values are not limited to boolean data types and comparisons. They can have many other forms.

Let us learn what makes an expression truthy or falsy in JavaScript.

1. Falsy Expressions

There are total 6 falsy values/expressions in JavaScript. We will use testTruthyFalsy() function to check if a given value is truthy or falsy.

function testTruthyFalsy (val) 
{ 
  	return val ? console.log('truthy') : console.log('falsy'); 
} 
Falsy Value/Expression Description
boolean ‘false Boolean false is false.

			testTruthyFalsy (false);	//Prints 'falsy'
			
Empty string i.e. '' Any empty string is evaluated to false.

			testTruthyFalsy ('');	//Prints 'falsy'
			
undefined Any undefined variable is equal to false.

			var my_var = undefined;
			testTruthyFalsy (my_var);	//Prints 'falsy'
			
null Any null variable is equal to false.

			var my_var = null;
			testTruthyFalsy (my_var);	//Prints 'falsy'
			
NaN Any numerical expression with result in NaN (not a number) is equal to false.

			testTruthyFalsy (NaN);		//Prints 'falsy'
			
Number zero i.e. +0 or -0 Any numerical expression with result in zero is equal to false.

			testTruthyFalsy ( 2 - 2 );		//Prints 'falsy'
			testTruthyFalsy ( 0 );	//Prints 'falsy'
			

2. Truthy Expressions

Any expression or value, other than the above listed falsy values, is considered truthy.

function testTruthyFalsy (val) 
{ 
  	return val ? console.log('truthy') : console.log('falsy'); 
} 

testTruthy(true); 					// truthy 
testTruthy(false); 					// falsy 
testTruthy(new Boolean(false)); 	// truthy (object is always true) 
 
testTruthy(''); 					// falsy 
testTruthy('Packt'); 				// truthy 
testTruthy(new String('')); 		// true (object is always true) 
 
testTruthy(1); 						// truthy 
testTruthy(-1); 					// truthy 
testTruthy(NaN); 					// falsy 
testTruthy(new Number(NaN)); 		// truthy (object is always true) 
 
testTruthy({}); 					// truthy (object is always true) 
 
var obj = { name: 'John' }; 
testTruthy(obj); 					// truthy 
testTruthy(obj.name); 				// truthy 

Happy Learning !!

Leave a Reply

3 Comments
Most Voted
Newest Oldest
Inline Feedbacks
View all comments

About Us

HowToDoInJava provides tutorials and how-to guides on Java and related technologies.

It also shares the best practices, algorithms & solutions and frequently asked interview questions.

Our Blogs

REST API Tutorial