HOWTO · JavaScript
JavaScript 负数
在本文中,学习如何在 JavaScript 中处理负数。探索通过直接赋值、数学运算和 Math 库创建负值的方法。提升您的编程技能,并了解负数在各种应用中的重要性。
本页内容
这个 JavaScript 示例会赋予两个数值并将它们输出:
const whole = -10;
const decimal = -3.14;
console.log(whole);
console.log(decimal);
-10
-3.14
使用一元负号创建负数
将一元负号运算符(-)放在数值字面量或变量之前,即可得到它的相反数。当值事先已知时,写成 -10 或 -3.14 这样的字面量。对于可能包含任一正负号的变量,-value 会反转它的符号,但不保证结果小于零。例如,对 -4 取负会得到正值。当目标是对值进行分类而非改变它时,请使用比较运算。
使用算术运算计算负数结果
当减去的量大于起始值时,减法可以产生小于零的值,例如 5 - 10。加上一个带负号写成的值,例如 5 + (-3),会使起始值变小。这些都是普通的算术表达式,因此当结果由计算本身决定时,就选用它们。
乘以 -1 会反转一个数值的符号:value * -1 等同于 -value。当目的就是要反转符号时,这很有用。但它并不是强迫值小于零的通用方法:负的输入会变成正的,而零在大小上仍为零。如果输入可能带任一正负号、且结果不得为正,请使用下一节的 Math.abs() 方法。
使用 Math.abs() 使值为非正数
Math.abs(value) 会返回一个数字的绝对值(大小)。用 -Math.abs(value) 对该结果取负,就能得到一个永远不大于零的值。当数值输入可能带任一正负号、且结果应为非正数时,这是合适的选择。
例如,Math.abs(-25) 返回 25,而 -Math.abs(25) 产生 -25。如果 value 是 0,该表达式的结果为负零(-0),它在比较时等于零,且并不小于零。无法转换为数字的非数值输入会产生 NaN;如果调用方可能提供文本或其他非数值,请另外验证或转换输入。Math.abs() 是内置函数;除非你还想反转符号,否则不需要将其结果乘以 -1。
检查数字是否为负数
使用 value < 0 来检查数字是否小于零。此比较对负数返回 true,对正数以及任一形式的零返回 false。它只检查符号而不改变值。如果输入可能还不是数值,请在依赖此比较之前先进行转换和验证,因为 JavaScript 的强制转型会影响涉及字符串的比较,且 NaN 永远不会被比较为小于零。