shim
一个shim是一个库,它将一个新的API引入到一个旧的环境中,而且仅靠旧环境中已有的手段实现
polyfill
一个polyfill就是一个用在浏览器API上的shim。我们通常的做法是先检查当前浏览器是否支持某个API,如果不支持的话就加载对应的polyfill。然后新旧浏览器就都可以使用这个API了。
假如有的浏览器没有isNaN方法,polyfill就可以这样做
if(!Number.isNaN) {
Number.isNaN = function(num) {
return(num !== num);
}
}