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 Boolean Values

I watched this video 5 times, and still can't understand at all.

I feel frustrating. :(

Savannah Lynn
Savannah Lynn
13,662 Points

Where in the video are you getting stuck? Boolean values as examples can sometimes be so simple they are confusing. Did you understand the previous video?

3 Answers

Steven Parker
Steven Parker
229,708 Points

Don't over-think things.

Booleans are the most simple kinds of values there are. They can only be "true" or "false". Or think of them like light switches — they can only be "on" or "off".

If that doesn't help clear things up, perhaps you could explain a bit more about what you find confusing.

Mezzo Forte
Mezzo Forte
1,877 Points

I'd assume it has to do with how come the if statement isn't comparing the Boolean variable to a true or false keyword.

var correctGuess = true;
if ( correctGuess ){ alert("You guessed correctly!") } else { alert("You guessed incorrectly") }

what is the correctGuess variable being compared with?

if ( correctGuess ){ }

is really

if ( correctGuess === true){

}

Its better to write code out completely sometimes since it increases readability. I myself forgot that its possible to just write if(true){}. Rarely do I write it that way in C# or other languages.

Steven Parker
Steven Parker
229,708 Points

Following best practices, you would not actually write (correctGuess === true), since the boolean correctGuess represents true or false on it's own.

But for extra clarity, a good practice would be to add a comment to the line explaining the intention of the logic.

Mezzo Forte
Mezzo Forte
1,877 Points

@Steven, you are correct. Did some googling to look more into it and found this. Much appreciated, your comment has been helpful. Learned lot from it! :)

http://stackoverflow.com/questions/23061921/javascript-ifx-vs-ifx-true/23061950

Though in the stackoverflow link they did use == instead. Will test when I have time.

John Silverstein
John Silverstein
6,290 Points

I've yet to find a clear explanation of the logic behind not stating correctGuess === true. is it the case that a boolean value needs only be defined once, and from there on everytime its mentioned it switches between true and false?

Steven Parker
Steven Parker
229,708 Points

A boolean (or any variable for that matter) doesn't change just from mentioning it.

You would need to assign it a different value to change it. For example, if you have this code:

yes = true;
if (yes) alert("yes is true");
if (yes) alert("yes is STILL true");

Both messages will pop up since "yes" is never changed.

And comparison operators (like "===") compare two values and return a boolean result. That's why you don't need comparisons if you have a boolean to start with, you just name it.