Javascript - 什么是polyfill

大家使用JavaScript,肯定对 Polyfill 不陌生,但仅仅是对这个单词不陌生,这玩意到底是啥,为什么需要它,原来我也很困惑,我还专门查了它的意思:

看完更是一脸懵逼,这东西跟我写JavaScript有毛关系。

其实,根据MDN的解释:

polyfill 是一段代码(通常是 Web 上的 JavaScript),用于在原生不支持它的旧浏览器上提供现代功能。

例如,可以使用 polyfill 使用专有的 IE 的filter来模拟 IE7 中文本阴影的功能,或者通过使用 JavaScript 动态调整样式或您需要的任何其他内容来模拟 rem 单位或媒体查询。

然而,API 的原生实现可以比 polyfill 做更多的事情并且速度更快。所以尽量不要使用Polyfill, 尤其是在IE死掉的今天。

我们来看一个例子:

Math.trunc(n) 是一个“截断”数字小数部分的函数,例如 Math.trunc(1.23) 返回 1

在一些(非常过时的)浏览器 / JavaScript 引擎中,没有 Math.trunc,所以这样的代码会失败。所以,我们需要的更新/添加新功能的脚本称为“polyfill”。 它“填补”了空白并添加了缺失的实现。对于这种特殊情况,Math.trunc 的 polyfill 是一个实现它的脚本,如下所示:

这就是最简单的Polyfill实现。

感谢阅读,欢迎关注!

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章