bugl
bugl
HomeLearnPatternsPathsSearchPremium
HomeLearnPatternsPaths

Loading lesson path

Learn/JavaScript/JavaScript Foundations
JavaScript•JavaScript Foundations

JavaScript Logical Operators

Logical Operators

Logical operators are used to combine boolean expressions .

Logical operators can be used to modify the results of comparisons.

Typically, you will use a comparison operator to check a condition, and a logical operator to combine conditions into more complex logic.

JavaScript Logical Operators

Logical operators are used to determine the logic between variables or values.

Given that x = 6 and y = 3 , the table below explains the logical operators:

OperNameExample
&&AND(x < 10 && y > 1) is true
OR(x === 5y === 5) is false
!NOT!(x === y) is true

JavaScript Logical AND

The && operator returns true if both expressions are true , otherwise false :

Example

let x = 6;
let y = 3;
let z = (x < 10 && y > 1)

JavaScript Logical OR

The || operator returns true if one or both expressions are true , otherwise false :

Example

let x = 6;
let y = -3;
let z = (x > 0 || y > 0)

JavaScript Logical NOT

The NOT operator (!) returns true for false expressions and false for true expressions .

Example

let x = (5 == 8);
let y = !(5 == 8)

The Nullish Coalescing Operator (??)

The ?? operator returns the right operand when the left operand is nullish ( null or undefined ), otherwise it returns the left operand.

Example

let name = null;
let text = "missing";
let result = name ?? text;

When programming, a lot of values can be falsey (like 0, empty strings, false, undefined, null, NaN).

However, sometimes you want to check if a variable is nullish (either undefined or null ), like when it is okay for a variable to be an empty string, or a false value. Then you can use the nullish coalescing operator .

Browser Support

?? is an ES2020 feature.

ES2020 is fully supported in all modern browsers since September 2020 :

Chrome 85Edge 85Firefox 79Safari 14Opera 71
Aug 2020Aug 2020Mar 2020Sep 2020Sep 2020

See Also

JavaScript Comparisons .

Previous

JavaScript Const

Next

JavaScript Control Flow