在 JavaScript 中检查值是负数还是正数

目录

Check if Value is a Negative Number in JavaScript

  1. 检查值是否为负数
  2. 检查数字是否为负整数
  3. 在 JavaScript 中检查一个值是否为正数
  4. 检查 String 是否为 JavaScript 中的正整数

检查值是否为负数

使用Math.sign()方法检查值是否为负数。

如果提供的参数是负数或可以转换为一,则Math.sign()方法返回。-1

索引.js
function isNegative(num) { if (Math.sign(num) === -1) { return true; } return false; } console.log(isNegative(-5)); // 👉️ true console.log(isNegative(5)); // 👉️ false console.log(isNegative('-5')); // 👉️ true console.log(isNegative('test')); // 👉️ false // ------------------------------------------------------ function checkNumberSign(num) { if (Math.sign(num) === 1) { console.log('The value is a positive number'); } else if (Math.sign(num) === -1) { console.log('The value is a negative number'); } } checkNumberSign(5); // 👉️ The value is a positive number checkNumberSign(-5); // 👉️ The value is a negative number

我们使用
Math.sign()
方法来检查一个值是否为负数。

如果提供的参数不是数字,则会将其转换为数字。

如果该Math.sign()方法返回-1,则提供的参数为负数或可以转换为一。

如果要确保传入参数的类型为number,请使用
typeof运算符。

索引.js
function isNegative(num) { if (typeof num === 'number' && Math.sign(num) === -1) { return true; } return false; }

我们使用逻辑与 (&&) 运算符来链接另一个条件。

我们在调用方法之前检查提供的参数是否为数字Math.sign()

Math.sign()方法有 5 个可能的返回值:

  • 1如果参数为正则返回
  • -1如果参数为负则返回
  • 0如果参数是,它返回0
  • -0如果参数是,它返回-0
  • 在所有其他情况下它返回NaN(不是数字)

下面是一些Math.sign()直接调用方法的例子。

索引.js
console.log(Math.sign(-5)); // 👉️ -1 console.log(Math.sign(5)); // 👉️ 1 console.log(Math.sign('-5')); // 👉️ -1 console.log(Math.sign('test')); // 👉️ NaN console.log(Math.sign(0)); // 👉️ 0

如果提供的值不是数字,该方法会尝试将其转换为一。

使用比较运算符检查值是否为负数

或者,您可以使用比较运算符。

如果小于运算符左侧的值还不是数字,它将被转换为 1 并与 进行比较0如果表达式返回true,则值为负数。

索引.js
function isNegative(num) { if (num < 0) { return true; } return false; } console.log(isNegative(-5)); // 👉️ true console.log(isNegative(5)); // 👉️ false console.log(isNegative('-5')); // 👉️ true console.log(isNegative('test')); // 👉️ false

我们使用
小于 (<)
运算符将左边的值与 进行比较
0

如果左边的值不是数字,JavaScript 会尝试将其转换为 1。

如果您只希望将数字作为参数,请在
if语句中添加另一个条件。

索引.js
function isNegative(num) { if (typeof num === 'number' && num < 0) { return true; } return false; }

以下是使用小于运算符的更多示例。

索引.js
console.log(-1 < 0); // 👉️ true console.log('-1' < 0); // 👉️ true console.log('test' < 0); // 👉️ false console.log('' < 0); // 👉️ false console.log(null < 0); // 👉️ false

如果您有兴趣阅读更多有关小于运算符在比较它们时如何转换不同类型的值的信息,请查看

MDN 文档的
这一部分。

在 JavaScript 中检查数字是否为负整数

检查一个数字是否为负整数:

  1. 将数字传递给Number.isInteger()方法。
  2. 检查数量是否小于0
  3. 如果两个条件都满足,则该数字为负整数。
索引.js
function isNegativeInteger(value) { if (Number.isInteger(value) && value < 0) { return true; } return false; } console.log(isNegativeInteger(0)); // 👉️ false console.log(isNegativeInteger(-1.5)); // 👉️ false console.log(isNegativeInteger(-1)); // 👉️ true console.log(isNegativeInteger('-1')); // false

我们使用
Number.isInteger()
方法来确定传入的值是否为整数。

true如果该值是整数,则该方法返回,false否则返回。

下面是一些Number.isInteger()直接使用该方法的例子。

索引.js
console.log(Number.isInteger(3)); // 👉️ true console.log(Number.isInteger(3.5)); // 👉️ false console.log(Number.isInteger('3')); // 👉️ false console.log(Number.isInteger(-3)); // 👉️ true

然后,我们使用
逻辑与 (&&)
运算符来链接另一个条件。

if运行块,必须满足这两个条件。

第二个条件只有在第一个条件返回时才被评估true

在我们的第二个条件中,我们检查整数是否小于0如果该值是一个整数并且小于0,则它是一个负整数。

但是,该方法有一个警告Number.isInteger()true如果传入值,该方法返回:

  • 是一个整数
  • 是一个可以表示为整数的浮点数

以下是可以表示为整数的浮点数示例:

索引.js
// 👇️ true console.log(Number.isInteger(-5.0)); // 👇️ true console.log(Number.isInteger(-5.0000000000000000123));

这取决于您的用例,但是,大多数应用程序都可以将诸如-5.0和之类的数字-3.0视为负整数。

在 JavaScript 中检查值是否为正数

使用Math.sign()方法检查值是否为正数。

如果提供的参数是正数或可以转换为一,则Math.sign()方法将返回。1

索引.js
function isPositive(num) { if (Math.sign(num) === 1) { return true; } return false; } console.log(isPositive(-5)); // 👉️ false console.log(isPositive(5)); // 👉️ true console.log(isPositive('5')); // 👉️ true console.log(isPositive('test')); // 👉️ false

我们使用
Math.sign()
方法来检查一个值是否为正数。

该方法采用的唯一参数是一个number. 如果提供的值不是数字,则会将其转换为 1。

如果该Math.sign()方法返回1,则提供的参数是正数或可以转换为 1。

如果要确保传入的参数是 type number,可以在if语句中添加额外的检查。

索引.js
function isPositive(num) { if (typeof num === 'number' && Math.sign(num) === 1) { return true; } return false; }

我们使用
逻辑与 (&&)
运算符来链接另一个条件。

我们在调用方法之前检查提供的参数是否为数字Math.sign()

Math.sign方法有 5 个可能的返回值:

  • 1如果参数为正则返回
  • -1如果参数为负则返回
  • 0如果参数是,它返回0
  • -0如果参数是,它返回-0
  • 在所有其他情况下它返回NaN(不是数字)

下面是一些Math.sign直接调用方法的例子。

索引.js
console.log(Math.sign(-5)); // 👉️ -1 console.log(Math.sign(5)); // 👉️ 1 console.log(Math.sign('-5')); // 👉️ -1 console.log(Math.sign('test')); // 👉️ NaN console.log(Math.sign(0)); // 👉️ 0

如果提供的值不是数字,该方法会尝试将其转换为一。

在 JavaScript 中检查值是否为正数

或者,您可以使用比较运算符。

如果大于运算符左侧的值还不是数字,它将被转换为 1 并与 进行比较0

如果表达式返回true,则该值为正数。

索引.js
function isPositive(num) { if (num > 0) { return true; } return false; } console.log(isPositive(-5)); // 👉️ false console.log(isPositive(5)); // 👉️ true console.log(isPositive('5')); // 👉️ true console.log(isPositive('test')); // 👉️ false

我们使用
大于 (>)
运算符将左边的值与 进行比较
0

如果左边的值不是数字,JavaScript 会尝试将其转换为 1。

如果您只希望将数字作为参数,请在
if语句中添加另一个条件。

索引.js
function isPositive(num) { if (typeof num === 'number' && num > 0) { return true; } return false; }

以下是使用大于运算符的更多示例。

索引.js
console.log(1 > 0); // 👉️ true console.log('1' > 0); // 👉️ true console.log('test' > 0); // 👉️ false console.log('' > 0); // 👉️ false console.log(null > 0); // 👉️ false

如果您有兴趣详细了解大于运算符在比较时如何转换不同类型的值,请查看

MDN 文档的
这一部分。

在 JavaScript 中检查字符串是否为正整数

检查字符串是否为正整数:

  1. 将字符串转换为数字并将其传递给Number.isInteger()
    方法。
  2. 检查数字是否大于0
  3. 如果字符串是一个有效的整数并且大于0,则该字符串是一个有效的正整数。
索引.js
function isPositiveInteger(str) { if (typeof str !== 'string') { return false; } const num = Number(str); if (Number.isInteger(num) && num > 0) { return true; } return false; } console.log(isPositiveInteger('0')); // 👉️ false console.log(isPositiveInteger('1')); // true console.log(isPositiveInteger('-1')); // 👉️ false console.log(isPositiveInteger('1.5')); // 👉️ false console.log(isPositiveInteger('test')); // false console.log(isPositiveInteger('')); // 👉️ false console.log(isPositiveInteger(' ')); // 👉️ false

我们首先检查传入的值是否不是字符串。在这种情况下,我们
false直接返回,因为函数只处理字符串。

您还可以使用 方法检查数字是否为正整数
Number.isInteger(),并检查数字是否大于0

索引.js
const num = 5; if (Number.isInteger(num) && num > 0) { // 👇️ this runs console.log('num is an integer'); }

我们使用Number()构造函数将字符串转换为数字并将值存储到变量中。

索引.js
function isPositiveInteger(str) { if (typeof str !== 'string') { return false; } const num = Number(str); if (Number.isInteger(num) && num > 0) { return true; } return false; }

下面是一些将字符串转换为数字的示例。

索引.js
console.log(Number('1')); // 👉️ 1 console.log(Number('1.5')); // 👉️ 1.5 console.log(Number('')); // 👉️ 0 console.log(Number(' ')); // 👉️ 0 console.log(Number('hello')); // 👉️ NaN
如果字符串包含任何非数字字符(不是 0-9),我们会返回(不是数字)。 NaN

如果字符串为空或包含空格,我们返回0

第二条语句中的第一个条件if检查该值是否为有效整数。

索引.js
function isPositiveInteger(str) { if (typeof str !== 'string') { return false; } const num = Number(str); if (Number.isInteger(num) && num > 0) { return true; } return false; }

如果提供的值是整数,则Number.isInteger
()
方法返回,
否则返回。
truefalse

下面是一些Number.isInteger()直接使用该方法的例子。

索引.js
console.log(Number.isInteger(1)); // 👉️ true console.log(Number.isInteger(1.5)); // 👉️ false console.log(Number.isInteger('1')); // 👉️ false console.log(Number.isInteger(-1)); // 👉️ true

我们使用了
逻辑与 (&&)
运算符来链接另一个条件。
if块仅在两个条件都满足时才运行true

第二个条件检查数字是否大于0

如果数字是一个整数并且大于0,我们有一个正整数。

但是,有一个警告Number.isInteger()true如果传入值,该方法返回:

  • 是一个整数
  • 是一个可以表示为整数的浮点数

以下是可以表示为整数的浮点数示例:

索引.js
// 👇️ true console.log(Number.isInteger(10.0)); // 👇️ true console.log(Number.isInteger(10.000000000000000123));

这应该无关紧要,因为大多数应用程序都可以考虑数字,例如1.0数字2.0

您还可以使用Math.sign()方法来检查字符串是否为正整数。

使用 Math.sign() 检查字符串是否为正整数

这是一个三步过程:

  1. 使用Number()构造函数将字符串转换为数字。
  2. 使用Number.isInteger()方法检查数字是否为整数。
  3. 使用Math.sign()方法检查数字是否为正数。
索引.js
function isPositiveInteger(str) { const num = Number(str); if (Number.isInteger(num) && Math.sign(num) === 1) { return true; } return false; } console.log(isPositiveInteger('0')); // 👉️ false console.log(isPositiveInteger('1')); // true console.log(isPositiveInteger('-1')); // 👉️ false console.log(isPositiveInteger('1.5')); // 👉️ false console.log(isPositiveInteger('test')); // false console.log(isPositiveInteger('')); // 👉️ false console.log(isPositiveInteger(' ')); // 👉️ false

我们使用了Number()构造函数将参数转换为数字。

如果传入的数字是整数,则Number.isInteger()方法返回truefalse,否则返回。

最后一步是使用Math.sign()方法检查数字是否为正数。

Math.sign

方法接受一个数字作为参数,
如果数字是正数则
返回1-1,如果数字是负数则返回

Math.sign()方法有 5 个可能的返回值:

  • 它返回1如果参数为正则
  • 它返回-1如果参数为负
  • 0如果参数是,它返回0
  • -0如果参数是,它返回-0
  • 在所有其他情况下它返回NaN(不是数字)

如果该Number.isInteger()方法返回true并且该Math.sign()方法返回1,则该字符串是一个正整数。