FAQ: Conditional Statements - The if keyword


This community-built FAQ covers the “The if keyword” exercise from the lesson “Conditional Statements”.

Paths and Courses
This exercise can be found in the following Codecademy content:

Web Development

Introduction To JavaScript

FAQs on the exercise The if keyword

There are currently no frequently asked questions associated with this exercise – that’s where you come in! You can contribute to this section by offering your own questions, answers, or clarifications on this exercise. Ask or answer a question by clicking reply (reply) below.

If you’ve had an “aha” moment about the concepts, formatting, syntax, or anything else with this exercise, consider sharing those insights! Teaching others and answering their questions is one of the best ways to learn and stay sharp.

Join the Discussion. Help a fellow learner on their journey.

Ask or answer a question about this exercise by clicking reply (reply) below!

Agree with a comment or answer? Like (like) to up-vote the contribution!

Need broader help or resources? Head here.

Looking for motivation to keep learning? Join our wider discussions.

Learn more about how to use this guide.

Found a bug? Report it!

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!


Why is no semicolon used at the end of the if-statement?


The statement " if (sale=true) " outputs the same result as the statement " if (sale) " yet the exercise marks this as incorrect, saying that the statement assigns sale the value of true. Is this just a matter of making the code more concise?


I believe the semicolon would only be needed at the end of each line of code within the curly brackets.


I found this explanation:

Your Guide to Semicolons in JavaScript


Yeah, I saw this too. The directions didn’t even introduce the comparison operators yet, but I got the message at the bottom of the console saying that I should use a comparison operator instead of =, because that is assigning a value.


Does this mean that if statements default to true?


This exercise just threw me.
I was expecting to put an argument in the if statement.
eg. if(sale = true){


not just (if sale){}

Where did I miss this crucial step?

I went elsewhere to find that a varialbe not assigned a value is a primitive boolean ‘0’, while a variable assigned a value is a primitive boolean ‘1’

1 Like

Hi Ramjet,
Your first argument is right, but I don’t know they did not explain to us the different between (sale) and (sale = true).
If you type only (sale), it should work.


Why can’t I reassign the value?
It worked when I use var instead of let.


The syntax rules for let are more strict than with var, for one, and for good reason… Why declare a variable more than once? let declares a variable in its current block scope. After that, we can change the value as often as we need.

let sale = true;
sale = false;

let does work like var in terms of declaring variables without defining them.

let a;
var b;

Because loops like for and while consist of their own block of code, let is encouraged to keep the loop data from leaking out. This is useful, and the reason it was incorporated in ES. var is pretty much on the way out as kind of the lame duck in the pond. You’ll still see it a lot, but less and less as the years pass.

Final note, a variable inside a block that is defined by assignment alone becomes a global, automatically.

for (i of [1,2,3,4]) {


We probably don’t want this happening in our program for perhaps less than obvious reasons, but make it a rule to always use a keyword to declare variables. They will be adopted into the scope in which they are declared.

1 Like