别了 JavaScript中的isXX系列


在JavaScript中,`isXX` 系列的方法通常用于检测某个值是否属于特定的类型或满足特定的条件。然而,JavaScript本身并没有内置一个完整的`isXX`系列方法集,但有一些常用的全局函数和Object的原型方法可以用来实现类似的功能。以下是一些常见的`isXX`检测方法的实现示例:

### 1. `isArray`

检查给定的值是否是一个数组。


function isArray(value) {
    return Object.prototype.toString.call(value) === '[object Array]';
}

### 2. `isObject`

检查给定的值是否是一个对象(非null且非原始类型)。


function isObject(value) {
    return value !== null && typeof value === 'object';
}

### 3. `isFunction`

检查给定的值是否是一个函数。


function isFunction(value) {
    return typeof value === 'function';
}

### 4. `isString`

检查给定的值是否是一个字符串。


function isString(value) {
    return typeof value === 'string';
}

### 5. `isNumber`

检查给定的值是否是一个数字。


function isNumber(value) {
    return typeof value === 'number' && !isNaN(value);
}

// 注意:上面的实现对于NaN也会返回false,因为NaN是typeof 'number'但isNaN(NaN)为true
// 如果想包含NaN,可以简化成
function isNumberSimplified(value) {
    return typeof value === 'number';
}

### 6. `isBoolean`

检查给定的值是否是一个布尔值。


function isBoolean(value) {
    return typeof value === 'boolean';
}

### 7. `isNull`

检查给定的值是否是null。


function isNull(value) {
    return value === null;
}

### 8. `isUndefined`

检查给定的值是否是undefined。


function isUndefined(value) {
    return typeof value === 'undefined';
}

这些函数可以帮助你更精确地判断JavaScript中变量的类型,尽管JavaScript的动态类型系统允许变量类型在运行时改变,但这些工具函数可以提供一种更可靠的类型检查方式。