一元否定运算符( - )
一元否定(-
)在其操作数之前,在尝试将其转换为数字后否定它。
句法:
-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' )