clamp
函数,包含number
(需要判断的值)upper
(上边界)lower
(下边界)三个参数。如果number
超出上边界或下边界,会返回距离number
差值最小的边界值。如果包含在两个边界值中,则返回number
该函数比较简单,但使用场景有待探索。需要了解一下知识点:
NaN === NaN // false
+'-0' // 0
-0 === +0 // true
+null // 0
+undefined // NaN
- 待日后补充
function clamp(number, lower, upper) {
// 传入的数字进行转换
number = +number
lower = +lower
upper = +upper
// NaN === NaN false
// NaN === 1 false
// +null 0
// +undefined NaN
// 处理非数字的情况
lower = lower === lower ? lower : 0
upper = upper === upper ? upper : 0
if (number === number) {
// 和最大边界值比较,超过最大边界值,返回upper
number = number <= upper ? number : upper
// 和最小边界值比较,小于最小边界值,返回lower
number = number >= lower ? number : lower
}
return number
}