Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

JavaScript JavaScript Basics (Retired) Making Decisions with Conditional Statements Super Conditional Challenge

Carl Sergile
Carl Sergile
16,570 Points

Hey did this the right way but im still getting an error. Can you let me know why?

So change all the conditions to include a && instead of ||, I do get the right response but the challenge did not pass. Im not sure not if I did it the right way.

script.js
var money = 9;
var today = 'Friday'

if ( money >= 100 && today === 'Friday' ) {
  alert("Time to go to the theater");    
} else if ( money >= 50 && today === 'Friday' ) {
  alert("Time for a movie and dinner");    
} else if ( money > 10 && today === 'Friday' ) {
  alert("Time for a movie");   
} else if ( today || 'Friday' ) {
  alert("It's Friday, but I don't have enough money to go out");   
} else {
  alert("This isn't Friday. I need to stay home.");
}
index.html
<!DOCTYPE HTML>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title>JavaScript Basics</title>
</head>
<body>
<script src="script.js"></script>
</body>
</html>
Jae Min Kweon
Jae Min Kweon
4,695 Points

The issue is with the fourth 'else if'.

'if' and 'else if' needs a Boolean in the (), but today || 'Friday' cannot be evaluated for a Boolean.

1 Answer

Steven Parker
Steven Parker
231,271 Points

Actually, JavaScript has this neat concept of "truthy" and "falsey", so the expression today || 'Friday' actually can be evaluated. Also the || operator might not do what you expect. If the left side cannot be converted into "True", then it returns whatever is on the right side. So in this case, that expression evaluates to 'Friday', which is "truthy". In fact, from the viewpoint of "if", everything is "truthy" except for 0, null, false, NaN, undefined, or the empty string ("").

But, for the purposes of the challenge, this is not the test you want to perform, since the expression will always be true, no matter what today is.

:point_right: you want an expression that will test if today is 'Friday' (or not).

Jae Min Kweon
Jae Min Kweon
4,695 Points

I stand corrected. Thank you very much for the info.