JavaScript函数参数校验可提升代码健壮性,1. 通过if判断或默认值确保参数存在;2. 使用typeof、instanceof、Array.isArray()进行类型检查;3. 校验失败时抛出Error或自定义异常;4. 封装通用校验工具或使用Joi等库复用逻辑,合理控制校验粒度。

JavaScript函数参数校验是确保函数接收正确类型和格式数据的重要手段。虽然JS本身是弱类型语言,不强制要求参数类型,但通过手动校验可以提升代码的健壮性和可维护性。
1. 基础参数存在性校验
最常见的校验是判断参数是否传入,避免undefined导致运行时错误。
可以通过条件判断或默认值来处理:
- 使用if (!param)判断参数是否存在(注意:空字符串、0等也会被判定为false)
- 更精确的方式是使用param === undefined || param === null
- 推荐使用ES6默认参数配合校验逻辑,如:function myFunc(param = 'default')
2. 类型校验方法
确保传入参数是期望的数据类型,常用方法包括:
- typeof:适用于基本类型(string、number、boolean、function、undefined)
- instanceof:用于对象、数组、日期等引用类型判断
- Array.isArray():专门判断是否为数组
- 例如:if (typeof name !== 'string') throw new Error('name must be string')
3. 抛出异常与错误处理
当参数不合法时,应主动抛出异常,便于调用者定位问题。
- 使用throw new Error('message')中断执行并提示错误信息
- 可自定义错误类型,如TypeError、RangeError等
- 建议在函数入口集中校验,避免分散判断影响可读性
- 示例:
function divide(a, b) { if (typeof a !== 'number') throw new TypeError('a must be a number'); if (typeof b !== 'number') throw new TypeError('b must be a number'); if (b === 0) throw new RangeError('divisor cannot be zero'); return a / b; }
4. 封装通用校验工具函数
为减少重复代码,可封装校验工具函数,提高复用性。
- 例如创建validateType(value, expectedType)函数
- 或使用第三方库如Joi、yup进行复杂结构校验
- 对于API接口类场景,可在函数开头统一校验参数集合
基本上就这些。合理使用参数校验能让函数更可靠,减少潜在bug。关键是根据实际场景选择合适的校验粒度,不过度防御也不放任不管。










