number/inRange.jsjavascript
/**
 * 判断数字是否位于指定区间,区间包含下界但不包含上界。
 * @function inRange
 * @memberof module:number
 * @param {number} value 待判断的数字
 * @param {number} start 区间起点,省略 end 时作为 end 使用
 * @param {number} [end] 区间终点
 * @returns {boolean} 是否位于区间内
 * @throws {TypeError} 参数不是有限数字时抛出
 */
function inRange(value, start, end) {
  if (!Number.isFinite(value) || !Number.isFinite(start) || (end !== undefined && !Number.isFinite(end))) {
    throw new TypeError('value, start, and end must be finite numbers')
  }
  if (end === undefined) [start, end] = [0, start]
  if (start > end) [start, end] = [end, start]
  return value >= start && value < end
}

export default inRange