一元取反(-)尝试将其转换为数字后,在其操作数之前并对其取反。
-expression
一个Number。
一元否定(-)可以转换与一元加(+)运算符相同的类型/值。
无法转换的值将计算为NaN(不存在-NaN)。
-42 // -42 -"42" // -42 -true // -1 -false // -0 -null // -0 -undefined // N -NaN // N -"foo" // N -{} // N -function(){} // N
请注意,尝试转换数组可能会导致意外的返回值。
在后台,首先将数组转换为其字符串表示形式:
[].toString() === ''; [1].toString() === '1'; [1, 2].toString() === '1,2';
然后,运算符尝试将这些字符串转换为数字:
-[] // -0 ( === -'' ) -[1] // -1 ( === -'1' ) -[1, 2] // N ( === -'1,2' )