# isLength
# Description
检查 value
是否为有效的类数组长度。
# Params
value
# Return
Boolean
# Code
const MAX_SAFE_INTEGER = 9007199254740991
function isLength(value) {
return typeof value === 'number' &&
value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER
}
# Analyze
整体判断逻辑比较清晰明了,number 类型、大于 -1 、为整数、小于等于最大安全整数,如果这些都满足,则判定为一个有效的 length ,判断频率高的条件在前面
# Remark
- Array 的 length 属性的值是一个 0 到 232 -1 (4294967295) 的整数,如果超过了这个值,会报 RangeError: 无效数组长度 ---- Array.length MDN (opens new window)
# Example
console.log(isLength(4294967296)) // true
console.log(isLength(-100)) // false
console.log(isLength('100')) // false
← isFunction isMap →