gpt4 book ai didi

javascript - 如何检查一个数字是否为负数?

转载 作者:IT王子 更新时间:2023-10-29 02:56:29 26 4
gpt4 key购买 nike

我想检查一个数字是否为负数。我正在寻找最简单的方法,因此预定义的 JavaScript 函数是最好的,但我还没有找到任何东西。这是我目前所拥有的,但我认为这不是一个好方法:

function negative(number) {
if (number.match(/^-\d+$/)) {
return true;
} else {
return false;
}
}

最佳答案

与其编写函数来执行此检查,不如使用以下表达式:

(number < 0)

Javascript 将首先尝试将左侧转换为数字值,然后再检查它是否小于零,从而评估此表达式,这似乎是您想要的。


规范和细节

x < y 的行为在§11.8.1 小于运算符 (<) 中指定,它使用§11.8.5 抽象关系比较算法

如果两者都x,情况就大不相同了。和 y是字符串,但由于右侧已经是 (number < 0) 中的数字,比较将尝试将左侧转换为要进行数值比较的数字。如果左边不能转换为数字,则结果为false .

请注意,与基于正则表达式的方法相比,这可能会产生不同的结果,但根据您尝试执行的操作,它最终可能会做出正确的事情。

  • "-0" < 0false ,这与 -0 < 0 的事实一致也是false(参见:signed zero)。
  • "-Infinity" < 0true (承认无穷大)
  • "-1e0" < 0true (接受科学记数法)
  • "-0x1" < 0true (接受十六进制文字)
  • " -1 " < 0true (允许使用某些形式的空格)

对于上述每个示例,正则表达式方法的计算结果都是相反的(true 而不是 false,反之亦然)。

引用资料

另见


附录 1:条件运算符 ?:

也应该说这种形式的陈述:

if (someCondition) {
return valueForTrue;
} else {
return valueForFalse;
}

可以重构为使用三元/条件 ?:运算符 ( §11.12) 简单地:

return (someCondition) ? valueForTrue : valueForFalse;

?: 的惯用用法可以使代码更加简洁易读。

相关问题


附录2:类型转换函数

Javascript 具有您可以调用以执行各种类型转换的函数。

类似下面的内容:

if (someVariable) {
return true;
} else {
return false;
}

可以使用 ?: 进行重构运算符(operator):

return (someVariable ? true : false);

但是你也可以进一步简化为:

return Boolean(someVariable);

这调用了 Boolean作为函数 (§15.16.1) 执行所需的类型转换。您可以类似地调用 Number作为一个函数 ( §15.17.1 ) 执行数字转换。

相关问题

关于javascript - 如何检查一个数字是否为负数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3571717/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com