能够编写现代代码并运送到旧浏览器
What are Javascript Polyfills?
polyfill 是一段代码(通常是 Javascript 代码),用于为本身不支持它的旧浏览器提供现代功能。
例如 – 的 polyfillObject.assign
必须提供与实际功能相同的功能,但是它需要 29 行代码:
Object.assign Polyfill
只包含你想要支持的浏览器的 polyfills
为了保持我们的 JavaScript 包很小,我们只想为我们想要支持的浏览器提供 polyfill,即 IE11 及更高版本。如果您不必支持 IE,那么您的捆绑包可能会小得多。
在执行之前检查该方法是否存在
在覆盖它之前,请始终检查您正在填充的方法是否存在。例如trim()
,非常旧的 IE 版本不支持的方法:
if (typeof String.prototype.trim !== 'function') { String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g,'') } } > " zebra ".trim() // "zebra"
编写条件逻辑后,您可以在HTML文档中的代码之前运行一个脚本,并运行这些脚本if checks
以查看是否支持这些方法。如果它们得到支持 – 什么都不做,如果它们不支持 – 实施它们。