如何检测低于ES6标准的旧IE专属非兼容JavaScript函数?
IE专属不兼容JS特性检测方案
现有JsHint、JSLint没有内置浏览器兼容性相关的规则库,无法识别宿主环境专属的废弃API,你可以用以下方案替代:
1. ESLint 搭配兼容性检测插件
- 安装
eslint-plugin-compat插件,通过配置browserslist指定你需要支持的目标浏览器范围(比如设置为last 2 Chrome versions, last 2 Firefox versions, not ie <= 11),即可精准标记所有不兼容指定浏览器的特性,包括document.all、event.returnValue这类IE专属API,以及不符合ES6标准的旧语法。 - 可额外搭配
eslint-plugin-unicorn的废弃API检测规则,覆盖更多非标准的老旧函数、语法。
2. 自定义静态扫描规则
- 如果有团队自定义的废弃特性清单,可以基于AST语法解析工具(比如
acorn、@babel/parser)编写轻量扫描脚本,批量匹配项目代码中的目标API调用,适合需要特殊定制检测规则的场景。
3. 运行时辅助校验
- 开发环境下可以引入兼容性检测的runtime脚本,页面运行过程中会在控制台输出当前调用的不兼容API,适合检测动态生成的JS代码中的兼容问题,弥补静态检测的遗漏。
配置注意项
- 首次检测前建议先明确需要兼容的浏览器范围,避免不必要的误报。
- 动态拼接的API调用(比如
window[prop]这种写法)静态检测无法识别,建议规范代码写法避免这类调用。
内容的提问来源于stack exchange,提问作者spunka
相关产品推荐
相关产品推荐

