Greater than (>)

The greater than operator (>) returns true if the left operand is greater than the right operand, and false otherwise.

Syntax

x > y

Description

The operands are compared using the Abstract Relational Comparison algorithm, which is roughly summarised below:

  • First, objects are converted to primitives using Symbol.ToPrimitive.
  • If both values are strings, they are compared as strings, based on the values of the Unicode code points they contain.
  • Otherwise JavaScript attempts to convert non-numeric types to numeric values:
    • Boolean values true and false are converted to 1 and 0 respectively.
    • null is converted to 0.
    • undefined is converted to NaN.
    • Strings are converted based on the values they contain, and are converted as NaN if they do not contain numeric values.
  • If either value is NaN, the operator returns false.
  • Otherwise the values are compared as numeric values.

Examples

String to string comparison

console.log("a" > "b");        // false
console.log("a" > "a");        // false
console.log("a" > "3");        // true

String to number comparison

console.log("5" > 3);          // true
console.log("3" > 3);          // false
console.log("3" > 5);          // false

console.log("hello" > 5);      // false
console.log(5 > "hello");      // false

console.log("5" > 3n);         // true
console.log("3" > 5n);         // false

Number to Number comparison

console.log(5 > 3);            // true
console.log(3 > 3);            // false
console.log(3 > 5);            // false

Number to BigInt comparison

console.log(5n > 3);           // true
console.log(3 > 5n);           // false

Comparing Boolean, null, undefined, NaN

console.log(true > false);     // true
console.log(false > true);     // false

console.log(true > 0);         // true
console.log(true > 1);         // false

console.log(null > 0);         // false
console.log(1 > null);         // true

console.log(undefined > 3);    // false
console.log(3 > undefined);    // false

console.log(3 > NaN);          // false
console.log(NaN > 3);          // false

Specifications

Specification
ECMAScript (ECMA-262)
The definition of 'Relational operators' in that specification.

Browser compatibility

No compatibility data found. Please contribute data for "javascript.operators.greater_than" (depth: 1) to the MDN compatibility data repository.

See also