官术网_书友最值得收藏!

  • JavaScript:Moving to ES2015
  • Ved Antani Simon Timms Narayan Prusty
  • 197字
  • 2021-07-09 19:07:40

Shims or polyfills

Polyfills (also known as shims) are patterns to define behavior from a new version in a compatible form supported by an older version of the environment. There's a great collection of ES6 shims called ES6 shim (https://github.com/paulmillr/es6-shim/); I would highly recommend a study of these shims. From the ES6 shim collection, consider the following example of a shim.

The Number.isFinite() method of the ECMAScript 2015 (ES6) standard determines whether the passed value is a finite number. The equivalent shim for it would look something as follows:

var numberIsFinite = Number.isFinite || function isFinite(value) {
  return typeof value === 'number' && globalIsFinite(value);
};

The shim first checks if the Number.isFinite() method is available; if not, it fills it up with an implementation. This is a pretty nifty technique to fill in gaps in specifications. Shims are constantly upgraded with newer features and, hence, it is a sound strategy to keep the most updated shims in your project.

Note

The endsWith() polyfill is described in detail at https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith. String.endsWith() is part of ES6 but can be polyfilled easily for pre-ES6 environments.

Shims, however, cannot polyfill syntactical changes. For this, we can consider transpilers as an option.

主站蜘蛛池模板: 新巴尔虎右旗| 酒泉市| 故城县| 酉阳| 莱州市| 三穗县| 锦屏县| 玉溪市| 东兰县| 新巴尔虎左旗| 禄劝| 乌兰察布市| 承德市| 海门市| 彝良县| 乌什县| 葵青区| 湘阴县| 庐江县| 嘉祥县| 确山县| 宽甸| 浙江省| 桓台县| 灵台县| 灵璧县| 弋阳县| 老河口市| 大渡口区| 夏津县| 广宗县| 泗洪县| 正蓝旗| 喀喇沁旗| 宜兴市| 乌海市| 郴州市| 宁陕县| 桐柏县| 嘉义市| 孙吴县|