首页 > 关于ECMAscript兼容性的问题

关于ECMAscript兼容性的问题

想请教一下 ES5 ES6他们在国内浏览器的兼容性问题,现在在看javascript权威指南,有些方法确实对之前的方法有封装过人之处,但是兼容性是否存在问题,在平时写代码的过程中是不是要实际考虑这些问题,否则岂不是有些方法看着有用其实用起来就给你报一个undefine的问题那就悲剧了。


https://developer.mozilla.org/zh-CN/

mozilla开发者社区,搜索你想查看的原生方法,不仅会在下面列出浏览器兼容版本以及ECMAScript版本,而且还提供polyfill.


1.一种解决方法是写polyfill,判断浏览器是否实现了这种方法,如果没有,你自己实现一个。比如IE8没有实现Array.prototype.indexOf,你可以在MDN的文档中查找到相应的polyfill实现(传送门)

大概是这个样子:

if (!Array.prototype.indexOf) {
  Array.prototype.indexOf = function(searchElement, fromIndex) {
    //你的实现...
  }
}

2.使用类似Babel的编译器,它可以将你的ES6的代码编译成ES5版本的JS代码。ES5的标准现在算是比较普遍了,如果有些坑,还是依靠第一种方法,通过实现polyfill来填坑。

【热门文章】
【热门文章】