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.
The unary negation (-
) operator precedes its operand and negates it.
Try it
const x = 4;
const y = -x;
console.log(y);
// Expected output: -4
const a = "4";
const b = -a;
console.log(b);
// Expected output: -4
Syntax
js
-x
Description
The -
operator is overloaded for two types of operands: number and BigInt. It first coerces 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 3
Negating non-numbers
The unary negation operator can convert a non-number into a number.
js
const x = "4";
const y = -x;
// y is -4
BigInts can be negated using the unary negation operator.
js
const x = 4n;
const y = -x;
// y is -4n
Specifications
Specification |
---|
ECMAScript® 2025 Language Specification # sec-unary-minus-operator |
Browser compatibility
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Unary negation ( - ) |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.