Unary negation (-)
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Theunary negation (-) operator precedes its operand and negates it.
In this article
Try it
const x = 4;const y = -x;console.log(y);// Expected output: -4const a = "4";const b = -a;console.log(b);// Expected output: -4Syntax
js
-xDescription
The- operator is overloaded for two types of operands: number andBigInt. It firstcoerces the operand to a numeric value and tests the type of it. It performs BigInt negation if the operand becomes a BigInt; otherwise, it performs number negation.
Examples
>Negating numbers
js
const x = 3;const y = -x;// y is -3; x is 3Negating non-numbers
The unary negation operator can convert a non-number into a number.
js
const x = "4";const y = -x;// y is -4BigInts can be negated using the unary negation operator.
js
const x = 4n;const y = -x;// y is -4nSpecifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-unary-minus-operator> |