我试图支持跨浏览器兼容性,但 IE ( Internet Explorer ) 不支持函数includes()。有谁知道为什么会这样?
Array.prototype.includes
和 String.prototype.includes
分别是 ES7(现在的 ES2017) 和 ES6(现在的 ES2015) javascript 规范的一部分。
来自维基百科:
Internet Explorer ...是一系列已停产的图形 Web 浏览器
关键词:停产。微软现在只开发Edge。 IE 可能仍会获得安全更新,但它将不再收到新的 JavaScript 更新或任何浏览器规范更新。
在 Internet Explorer 中不支持,你能解释一下原因吗?includes()
Internet Explorer 不支持
Array.prototype.includes
或 String.prototype.includes
,因为 Microsoft 不再开发 IE。这些规范是在 Microsoft 停止使用 IE 之后制定的,因此,它不会获得这些功能。
但是等等
您仍然可以通过使用 polyfills 在旧浏览器中使用新的 javascript。
您可以使用 core-js 作为 polyfill 库。
要在 IE 中使用
includes(...)
,只需将其包含在 <head>
顶部的任何脚本之前即可。
<script src="https://cdnjs.cloudflare.com/ajax/libs/core-js/2.4.1/core.min.js"></script>
Internet Explorer 不支持 ES2016 和 ES2016+ 功能,因为它是过时的 Web 浏览器,已被 Microsoft Edge 取代。 Microsoft Edge 是 Microsoft 推出的现代 Web 浏览器,支持最新的 Web 标准和功能,包括 ES2016 和 ES2016+。建议使用 Microsoft Edge 或其他现代 Web 浏览器,以确保与最新 JavaScript 功能的兼容性。如果由于遗留原因需要支持 Internet Explorer,您可以使用像 Babel 这样的转译器将 ES2016 和 ES2016+ 代码转换为与 Internet Explorer 兼容的 ES5 代码。