在JavaScript的世界里,有两个词经常被提到,shim和polyfill.它们指的都是什么,又有什么区别?一个shim是一个库,它将一个新的API引入到一个旧的环境中,而且仅靠旧环境中已有的手段实现一个polyfill就是一个用在浏览器API上的shim.我们通常的做法是先检查当前浏览器是否支持某个API,如果不支持的话就加载对应的polyfill.然后新旧浏览器就都可以使用这个API了.术语polyfill来自于一个家装产品Polyfilla:

Polyfilla是一个英国产品,在美国称之为Spackling Paste(译者注:刮墙的,在中国称为腻子).记住这一点就行:把旧的浏览器想象成为一面有了裂缝的墙.这些[polyfills]会帮助我们把这面墙的裂缝抹平,还我们一个更好的光滑的墙壁(浏览器)Paul Irish发布过一个Polyfills的总结页面“HTML5 Cross Browser Polyfills”.es5-shim是一个shim(而不是polyfill)的例子,它在ECMAScript 3的引擎上实现了ECMAScript 5的新特性,而且在Node.js上和在浏览器上有完全相同的表现(译者注:因为它能在Node.js上使用,不光浏览器上,所以它不是polyfill).

JavaScript名词shim与polyfill相关推荐

  1. shim和polyfill有什么区别?

    为什么80%的码农都做不了架构师?>>>    在JavaScript的世界里,有两个词经常被提到,shim和polyfill.它们指的都是什么,又有什么区别? 1.Shim 一个s ...

  2. shim和polyfill的区别,重点是Polyfill的作用和使用

    在JavaScript的世界里,有两个词经常被提到,shim和polyfill.它们指的都是什么,又有什么区别? 一个shim是一个库,它将一个新的API引入到一个旧的环境中,而且仅靠旧环境中已有的手 ...

  3. shim和polyfill的区别,重点是Polyfill的作用和使用。

    在JavaScript的世界里,有两个词经常被提到,shim和polyfill.它们指的都是什么,又有什么区别? 一个shim是一个库,它将一个新的API引入到一个旧的环境中,而且仅靠旧环境中已有的手 ...

  4. 【概念集锦】之 shim和polyfill

    shim 是一个小的类库(lib),提供独立的API,以弥补人们在不同的环境下使用原生语言需要考虑兼容性的问题. 比如:使用js原生Ajax操作时,你用 XMLHttpRequest 创建xhr对象, ...

  5. 前端“黑话”polyfill

    前言 在Web前端开发这个日新月异的时代,总是需要阅读一些最新的英文技术博客来跟上技术的发展的潮流.而有时候会遇到一些比较高频的"黑话",在社区里面可能已经是人人皆知的" ...

  6. 一般人不清楚的JavaScript概念

    注:以下部分代码或术语涉及ECMAScript 6. 1. literal literal(字面量)即开发者写的,可直接被解析器识别,不必显式依赖API创建的量.如: 数字literal:123, 0 ...

  7. 你不知道的JavaScript(ES6与之未来)

    你不知道的JS(下卷)ES6与之未来 第一章:ES的今与明 在你想深入这本书之前,你应该对(在读此书时)JavaScript的最近标准掌握熟练,也就是ES5(专业来说是ES 5.1).在此,我们决定全 ...

  8. babel 编译vue_如何对代码进行未来验证:使用Babel polyfills编译JavaScript VS

    babel 编译vue A compiler like Babel will almost certainly be a foundational tool in building JavaScrip ...

  9. polyfill了解吗?

    [问]polyfill了解吗? [答]:Polyfill是指给旧浏览器提供向后兼容的新特性,比如让旧版IE,也支持object.assign方法等.和此相关的概念还有shim, 是指抽象出一层API来 ...

  10. 近几年前端技术盘点以及 2016 年技术发展方向

    近几年前端技术盘点以及 2016 年技术发展方向 Web 发展了几十个春秋,风起云涌,千变万化.我很庆幸自己没有完整地经历过这些年头,而是站在前人的肩膀上行走.Web 技术发展的速度让人感觉那几乎不是 ...

最新文章

  1. oracle rac ora 12537,解决11gR2 Rac ORA-12537: TNS:connection closed 一例
  2. 基于i.MX RT1060的可编程视觉模块
  3. tensorflow LSTM
  4. 如何向新手程序员介绍编程?
  5. Oracle导入导出数据
  6. Cookie和Session实现保存登录状态免登录
  7. 云服务器有什么好 能让云大佬们竞争如此激烈
  8. 从Spring到Java EE 6
  9. 信息学奥赛一本通(1407:笨小猴)
  10. 控制台修改应用端口_应用架构六边型架构:三个原则和一个实现示例
  11. ThinkPHP基础
  12. 中孚保密检查客户端 完全卸载_保密检查工具 中孚保密检查清除工具
  13. 高阶的Parser:可变运算优先级
  14. 杭州电子科技大学第三届网络攻防大赛初赛题目
  15. 厦门电子地图,厦门市地图,厦门地图查询,公交线路查询地图
  16. C++提高编程——模板
  17. 客户成功的起源——SaaS(软件即服务)
  18. 废物利用--旧手机搭建linux服务器
  19. 管理人员巡店用表-主管每日工作流程
  20. 基于石墨烯的光电探测传感器研究

热门文章

  1. html怎么用css文件怎么打开,css文件用什么打开?
  2. 密码分析(二):线性密码分析
  3. graphpad prism怎么添加图例_如何用Graphpad prism添加多个图例
  4. 网站优化策略有哪几种方法
  5. exynos 4412 电源管理芯片PMIC 的配置及使用方法
  6. Migration——迁移
  7. json 转 实体对象 报解析错误
  8. 使用 Wowza IDE 开发第一个 Wowza 服务器扩展应用 -- 监控直播频道
  9. LiveNVR安防监控直播中无插件web直播方案中实现快照抓取的功能
  10. d3dx9_43.dll如何修复?计算机中丢失d3dx9_43.dll的解决办法