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 () 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 () below!
Agree with a comment or answer? Like () to up-vote the contribution!
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.
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.
@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
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.
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.
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.
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.
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.
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();