定义一个具有最大值的变量

Defing a var with a max value.

本文关键字:最大值 变量 一个 定义      更新时间:2023-09-26

是一个简单的一行代码,执行以下操作:

var asbMax = max
if (asbMax > 100000) 
  asbMax = 100000

其他语言允许你在一行中做到这一点,我想知道Javascript是否也有办法做到这一点。

你可以使用三元运算符:

var asbMax = max > 100000 ? 100000 : max;

作为一个建议,以防止在允许的最大值上出现更多的打字错误:

var allowedMax = 100000;
var asbMax = max > allowedMax ? allowedMax : max;

参见:MDN -条件(三元)运算符

虽然您肯定可以使用三元操作符,但您的特定场景的另一种选择是使用Math.min。下面是一个例子:

var asbMax = Math.min(max, 100000);

此方法返回传递给它的参数中最小的数字。所以这里,如果max小于100000,它将返回max。但如果max大于100000,则返回100000

参考:

  • Math.min: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/min

如果你想确保foo不高于123,有几种方法可以做到:

// the way you have
if (foo > 123) {
  foo = 123;
}
// using ternary operators
foo = foo > 123 ? 123 : foo;
// using Math.min
foo = Math.min(foo, 123);
// using a method from http://sugarjs.com/
var minimumValue = 0;
foo = foo.clamp(minimumValue, 123);
// using https://github.com/hughsk/clamp for Node.js
var clamp = require("clamp");
var minimumValue = 0;
foo = clamp(foo, minimumValue, 123);
var asbMax = (max > 100000) ? 100000 : max;