一元否定運算子( - )

一元否定(-)在其運算元之前,在嘗試將其轉換為數字後否定它。

句法:

-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' )