FAQ: Control Flow - Putting It All Together

This community-built FAQ covers the “Placeholder” exercise from the lesson “Control Flow”.

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

Learn How To Code

FAQs on the exercise Putting It All Together

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!

if (mode === ‘public’) {
showDetails();
} else {
hideDetails();
}

Basics of Programming II
CONTROL FLOW

Putting It All Together

It will not let me past this step, even though it appears to be correct?

2 Likes

Same for me. Strange.

It’s very confusing. Take away semicolon and it will work. Took me forever to figure that out. I even clicked on give me solution and nothing changed. Very very confusing with no help on something so minor.

Why do we use a semi colon and not a colon after the functions showDetails(); and hideDetails();

1 Like

In JavaScript we use an end of statement token to tell the interpreter to parse the line and stop. That token is the semi-colon. There are no colons in JS, except as property-value separators in objects.

obj = {
    property: value
}

Modern JS (ES6 and above) have somewhat relaxed the need for the semi-colon and it will actually insert them automatically where needed if they are omitted. In time you will get the hang of where they are typically needed, and also where they are not needed.

One such relaxed situation is the last statement in a block. It does not technically need a semi-colon since it is followed by a closing brace, which is where the interpreter will naturally stop parsing. When statements follow each other, they will have a token to end each one.

3 Likes

Hi i have the same problem, even taking the semicolons away did not solve it for me i guess im stuck

3 Likes

You don’t need the semicolons but you do need to capitalize the ‘d’ in details. showDetails() and hideDetails() will make it work.

7 Likes

I am in the same position here. Have tried with or without ;
Caps for d in Details :frowning:

@steve85tait if you have the code well written, just press f5 and course will let you move to the next step!
Hope worked for you and/or others here looking to move forward :grin:

Was about to post this exact question till I read this post. I figured it had something to do with punctuation and after going through the replies my problem was fixed. Thanks for this even though I didn’t post my question.

so this loaded and there is nothing written down for this exercise

It was a bit confusing as the solution didn’t have the public post appearing until I put the brackets in though if I added the semicolon it didn’t work.

Dear all,

if (mode === ‘public’)

*whats the difference between ==, and ===. specifically in JS.

Thanks

2 Likes

JS is loosely typed which means we can coerce one type to another in a comparison. == is the coercive equality operator.

1 == '1'     =>  true

The strict comparison uses the non-coercive identity operator.

1 === '1'    =>  false

If the types do not match, they are not equal (identical).

Best practice guidelines recommend never use the loose type comparison unless it is the actual intention to allow coercion. Use === for all comparisons. This suggests being close aware of the data types in our program.

1 Like

Hi guys,

I was going through the coding portion of this and had some previous experience with coding from a class. If you try to define the functions before hand above the already written code before calling them, that will also ruin your code. Thought I should mention this in case anyone else has this problem. Do not define the functions before calling them.

Please post a link to this lesson.

I find it difficult to believe that we can call a function before it is defined, unless the function is hoisted, in which case it is defined. Function declarations are hoisted so can appear anywhere in the source listing. Function expressions are not, so they must appear in the source listing before their first call.

Can someone tell me why we use brackets after showDetails’()’ and hideDetails’()’?can someone also tell me what happens if the brackets are filled?

Hi guys . I was trying to figure out why my code doesn’t work, finally found the answer . Remove double slash // before showDetails(); and hideDetails();

7 Likes

Hi

Same problem for me, tried all of the suggestions and nothing worked until I added the brace } underneath