我在JavaScript中读到了read关键字,我需要在我的项目中使用它。我读到这个关键字是从JS的某个版本开始实现的,所以我认为旧的浏览器不支持它(对吧?)。
有没有办法检查yield关键字是否受支持?或者至少有一种方法可以检查JS的版本是否高于或等于实现该关键字的版本(1.7)?
发布于 2011-08-31 04:40:55
这是一个函数,用于检查是否可以使用yield。
var can_yield = (function(){
try {
return eval("!!Function('yield true;')().next()");
}
catch(e) {
return false;
}
})();发布于 2010-02-20 00:09:10
yield为JavaScript引入了新的语法。除非通过在script type属性(*)中包含版本号来指定要使用新的JavaScript语法,否则将无法使用yield。
指定脚本版本时,只有支持给定版本的浏览器才会执行该块。因此,只有火狐,而不是IE、Opera或WebKit,才会在以下代码中执行顶部代码块:
<script type="text/javascript;version=1.7">
function x() {
yield 0;
}
var canyield= true;
</script>
<script type="text/javascript">
if (!window.canyield) {
// do some fallback for other browsers
}
</script>(*:请注意,type属性中指定的类型和版本专门决定是否获取和执行外部脚本,以及执行的模式。不幸的是,脚本的Content-Type被完全忽略了。)
发布于 2013-04-12 02:11:09
这是我对检查原生yield支持的看法。
var canYield = (function(){try{yield;}catch(e){}}())!==undefined;现代化测试
define(['Modernizr'], function( Modernizr ) {
// native yield support.
Modernizr.addTest('yield', (function(){try{yield;}catch(e){}}())!==undefined);
});Performance http://jsperf.com/yield-support


https://stackoverflow.com/questions/2297286
复制相似问题