如何检测浏览器支持的JavaScript版本(如果有)?我想检查ECMAScript 3与ECMAScript 5对比ECMAScript 6.
注意:我想避免使用已弃用的language标记.
我真的很喜欢ES6发电机.有没有办法在浏览器中检测生成器支持?我知道目前生成器可能不在很多浏览器中(或者可能根本没有浏览器),但这对我来说是可以的.
我试过了:
try {
function *(){}
} catch(err) {
console.log("No generators");
}
Run Code Online (Sandbox Code Playgroud)
但它似乎没有用.
如何在浏览器中检测对ES6生成器的支持?
javascript browser generator ecmascript-harmony browser-feature-detection
有许多ES6功能看起来很像=>语法,Map对象和长等.
说实话,我已经厌倦了检查是否因为ie8 attachEvent而支持addEventListener,我不希望那种痛苦回归到我的生活中.
那么,你会如何处理这些新的可能性?(或者你会怎么说,在一年左右的时间里).您是否不会将它们用于基本操作,而是添加另一层额外功能?您是否只将它用于您知道将在支持它们的浏览器中运行的应用程序?你会等到至少有90%的支持吗?
我知道这些都是很棒的功能,但对于中短期使用,您似乎需要加倍代码检查和后备支持.
有关这个主题的任何启示?
编辑:请不要将此标记为重复.请注意,我不是在问如何检查支持,我问是否明智地开始使用它,或者最好等待.我还要问支持检查是否是最佳选择,而不是如何执行,或者在设计代码时是否还有其他方法可供使用.
我知道你可以用这样的东西检测 javascript 中的功能
if(xmlhttprequest){
console.log("this browser is ajax compatible");
}
Run Code Online (Sandbox Code Playgroud)
我也明白,如果启用了某些开发模式设置,ES6 导入与某些浏览器自然兼容。IE
import {someExport} from './someModule.js';
Run Code Online (Sandbox Code Playgroud)
我的问题是
是否可以像检测对象一样检测“导入”?如果是,怎么办?是否可以导入整个 JS 文件(以便可以导入不使用 Export 的 ES5 Javascript)
我尝试使用 if(object) 语法和各种变体(包括有和没有 from 语句),但到目前为止还没有运气
我这样做的原因是我构建了一个依赖于 Jquery 和 GreenSock 的 javascript 功能,并希望脚本在兼容的浏览器中自动导入这些功能,因此开发人员不必手动添加多个 JS 库。