我正在编写要分成几个模块的脚本。 “基准”模块将支持较旧的浏览器,该浏览器不支持新的语法,例如===和promises。
如果浏览器通过功能检查,将加载“高级”模块。
我的问题是,如何在没有首先实际使用浏览器的情况下检查浏览器是否支持===
运算符和.then(function(){})
承诺语法,并在较旧的浏览器中引起语法错误?
if (/*what goes here*/) {
var script = document.createElement('script');
script.src = '/advanced.js';
script.async = false;
document.head.appendChild(script);
}
===
运算符从Mocha开始就使用JavaScript。没有任何不支持JS的实现。
您不必担心需要支持then()
方法。如果您需要关心对诺言的支持,那么您首先需要在实现诺言时就关心它。这只是if (typeof Promise === "function")
的问题,但是如果that是一个问题,那么您可能应该首先只是加载Promise polyfill库。