FAQ: Conditional Statements - Logical Operators


This community-built FAQ covers the “Logical Operators” 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 Logical Operators

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!


How could I negate the value of the entire statement with ! as per additional experementing advice? It’s not like with the previous example where there is a boolean set in variable. So how can I use the bang operator on the two comparisons to negate them?


we could simple use the bang operator at both conditions:

console.log( !false && !false );

or we can use the order of operations to our advantage:

console.log( !(false && false) );

parentheses are evaluated first, so the order is:

parentheses -> and operator -> bang operator


It is not a bang operator in JavaScript, but in Ruby. In JS it is the NOT operator.

Any truthy expression in any form will be cast to a boolean and negated, so will yield, false. The opposite will happen when we negate a falsy expression and will yield, true.


The exercise mentions we can add optional parentheses to the conditions to make it clearer for other developers. What is considered best practice? Is it recommended to use the optional parentheses or not? Thanks for the help!


Brackets are for grouping, and if grouping is not required for operator precedence, we don’t need them. Code is just as readable without them, assuming the reader understands order of operations.


Thank you! That is really helpful!