Browserslist中的not语句的误区

很多人会把Browserslist中的and、or、not理解为集合运算中的交集、并集、绝对补集,这是错误的。

Browserslist的语句分为查询语句排除语句 ,not表示这是一个排除语句

排除语句有以下特性

  • 排除语句不能单独存在
  • 总是先查询后排除
  • 排除语句无视和他并列的and和or

以下是有关最常见的配置示例:

perl 复制代码
last 2 versions, not dead

你可能会以为这是:先查询所有浏览器的最新2个版本,再查所有没死的浏览器,再取并集。这是错的。

正确的理解是:先查询所有浏览器的最新2个版本,再排除所有死的浏览器。

相当于 last 2 versions and not dead

我们看看第二个例子

markdown 复制代码
> 1%, last 2 versions, not dead

你可能会以为这是:查询占有率>1%的浏览器,查询所有浏览器的最新2个版本,再查所有没死的浏览器,再取并集。这是错的。

正确的理解是:查询占有率>1%的浏览器,查询所有浏览器的最新2个版本,再取并集,再排除所有死的浏览器。

相当于 (> 1% or last 2 versions) and not dead

上面例子由于结合了实际,你可能并不会理解错,我再举易误解个例子。

复制代码
dead or not dead

这个语句将会查出所有浏览器,还是查不出浏览器呢?

答案是查不出浏览器。上面语句先查所有死的浏览器,再排除死的浏览器,结果是空集。

总结:

Browserslist中的not不是绝对补集,而是排除语句

相关推荐
女生也可以敲代码16 分钟前
AI时代下的50道前端开发面试题:从基础到大模型应用
前端·面试
ZhengEnCi23 分钟前
M5-markconv自定义CSS样式指南 📝
前端·css·python
IT_陈寒42 分钟前
SpringBoot自动配置的坑差点让我加班到天亮
前端·人工智能·后端
xingpanvip42 分钟前
星盘接口开发文档:星相日历接口指南
android·开发语言·前端·css·php·lua
@PHARAOH1 小时前
WHAT - GitLens supercharged 插件
前端
TT模板1 小时前
苹果cms整合西瓜播放器XGplayer插件支持跳过片头尾
前端·html5
Wect2 小时前
React 性能优化精讲
前端·react.js·性能优化
追风筝的人er2 小时前
SpringBoot+Vue3 企业考勤如何处理法定假期?节假日方案、调休补班与工作日判断链路拆解
前端·vue.js·后端
无敌的黑星星3 小时前
Java8 CompletableFuture 实战指南
linux·前端·python
雁鸣零落3 小时前
如何在 Chrome 中查看其他浏览器的书签?书签空间订阅与侧边栏只读切换指南
前端·chrome·edge浏览器