ECMAScript 2021(ES12)中新增的 Math.clamp() 方法详解及使用示例

简介

在 ECMAScript 2021 中,Math 对象新增了一个名为 .clamp() 的方法。Math.clamp() 可以在给定范围内将数字限制为指定的最小值和最大值之间。它的语法如下:

------------------ ------ ------

其中 number 是要被限制的值,lowerupper 分别是限制范围的下限和上限。返回结果最终保证落在给定范围内。

使用场景

.clamp() 方法经常用于处理输入校验,确保用户提供的数据在一定范围内。例如以下代码可以确保存储在数组里面的温度数据在 $-10℃$ 到 $30℃$ 之间:

----- ------------ - ----- --- --- --- ----
----- -------------- - ----
----- -------------- - ---

----- ------------------- - ------------------ -- ------------- --------------- -----------------

--------------------------------- -- ------- ----- --- --- --- ---

除此之外,.clamp() 还可以用于 CSS 样式设置中。例如下面这段代码可以确保背景色始终在给定色值的范围内:

----------------- -------------- -------- ---------

在上述例子中,背景色最终将落在 $ #666666 $ 和 $ #999999 $ 之间。

应用示例

除了数值算术运算,默认情况下 JavaScript 的比较运算符(如 <, >, <=, 和 >=)只能用于输入两个操作数的运算。如果需要从数组、对象、集合等动态类型数据呈现元素中取出一个适合条件的值,则不得不编写额外的代码逻辑来实现判断。.clamp() 方法让这些运算更为简单明确:

----- -------- - -
  - ----- -------- ---- -- --
  - ----- ------ ---- -- --
  - ----- ---------- ---- -- --
  - ----- -------- ---- -- -
--

-- -----------
----- --------------- - --------------------- -------- --
    ----------- - --- - ----------- - ----
    --------
--

-- ------------
----- ---------------- - --------------------- -------- --
    --------------------- ----
- -----------


-- -- -- - -- - -- -- ------- ----
----- --------------- - --------------- -- -
    ----- ---------- - ----------------- --- ----
    ------ ---------- --- -- -- ---------- --- ---
---

----------------------------- --------- --
------------------------------ --------- --
----------------------------- --------- - ----- -------- ---- -- -

在上述示例中,我们从数组里面找到了年龄最小的学生、最大年龄值,并使用 .clamp() 找到了年龄在 $20$ 到 $24$ 之间离 $20$ 岁最近的合法学生。

结论

现如今的 Web 应用程序越来越注重用户体验和性能。新加入的 JavaScript 特性使得实现相同功能的操作更加简单、快速且可读性更好,在 Web 开发中尤其重要。.clamp() 方法是其中一个很有用的新特性,可以帮助开发人员更轻松地限制数字范围,提高代码的可维护

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6729b64a2e7021665e2564b7