一元否定运算符( - )

一元否定(-)在其操作数之前,在尝试将其转换为数字后否定它。

句法:

-expression

返回:

  • 一个 Number

描述

一元否定(-)可以转换与一元加(+)运算符相同的类型/值。

无法转换的值将评估为 NaN(没有 -NaN)。

例子:

-42           // -42
-"42"         // -42
-true         // -1
-false        // -0
-null         // -0
-undefined    // NaN
-NaN          // NaN
-"foo"        // NaN
-{}           // NaN
-function(){} // NaN

请注意,尝试转换数组可能会导致意外的返回值。
在后台,数组首先转换为它们的字符串表示:

[].toString() === '';
[1].toString() === '1';
[1, 2].toString() === '1,2';

然后,运算符会尝试将这些字符串转换为数字:

-[]           // -0  ( === -'' )
-[1]          // -1  ( === -'1' )
-[1, 2]       // NaN ( === -'1,2' )