我想看看我在浏览器中使用的是什么ECMAscript版本(例如chrome 59),因为在处理一些RegExp的东西时,ECMAscript3和ECMAscript5之间有一些区别。我已经找到了相关的信息,但是我找不到关于如何检测ECMAscript版本的具体答案。先谢谢你。
gg58donl1#
您可以尝试使用ES6中专门添加的一些数据结构,如Map、Set等。这是为了区分ES5和ES6,但您可以查找ES5中添加的功能,而在您的情况下,ES3中不存在这些功能?
ES6
Map
Set
ES5
ES3
try { var k = new Map(); console.log("ES6 supported!!") } catch(err) { console.log("ES6 not supported :(") } try { var k = new HashMap(); console.log("ES100 supported!!") } catch(err) { console.log("ES100 not supported :(") }
f1tvaqid2#
我认为这是不可能的,因为浏览器通常不会一次实现ECMAScript版本的所有功能,这就是为什么我们有Modernizr这样的库和Can I use ...这样的网站来了解哪些功能可以使用。您仍然可以构建一个小测试来确定RegEx在用户浏览器版本中的行为。
d4so4syb3#
ECMAScript是一个行业标准:ECMAScript是Ecma International在ECMA-262和ISO/IEC 16262中标准化的脚本语言规范。创建ECMAScript是为了标准化JavaScript,以便促进多个独立的实现。Javascript是一种流行的实现,或多或少:自ECMAScript标准首次发布以来,JavaScript一直是ECMAScript最著名的实现,其他著名的实现包括JScript和ActionScript。wikipedia考虑到JavaScript在各种浏览器、node.js等中的实现现状,没有人会专门对自己进行版本控制,而是不断地开发新功能。所以最好的方法是检测(可能是使用第三方库)所需的功能是否存在,然后使用。否则就回到更传统的方法。通常是尝试一些操作,然后检查是否如预期的那样,没有魔法。
lb3vh1jj4#
ECMAScript在每个版本上支持不同的对象。要检测ECMAScript版本,我们可以检查对象是否退出到浏览器中。如果标识了该对象,则表示浏览器支持ECMA版本。检查以下链接是否有检测ECMAScript版本的良好示例。https://www.devdiscuss.com/how-to-detect-the-ecmascript-version/
o2gm4chl5#
下面是一个扩展的EcmaScript检测器:
function getES() { var array = [] if (!Array.isArray) { return 3 } else if (!window.Promise) { return 5 } else if (!array.includes) { return 6 } else if (!"".padStart) { return 7 } else if (!Promise.prototype.finally) { return 8 } else if (!window.BigInt) { return 9 } else if (!Promise.allSettled) { return 10 } else if (!"".replaceAll) { return 11 } else if (!array.at) { return 12 } else { return 13 } } var ecmascript = getES() var year = getES() === 3 ? 1999 : ecmascript + 2009 console.log("Version " + ecmascript + ", Year " + year)
5条答案
按热度按时间gg58donl1#
您可以尝试使用
ES6
中专门添加的一些数据结构,如Map
、Set
等。这是为了区分ES5
和ES6
,但您可以查找ES5
中添加的功能,而在您的情况下,ES3
中不存在这些功能?f1tvaqid2#
我认为这是不可能的,因为浏览器通常不会一次实现ECMAScript版本的所有功能,这就是为什么我们有Modernizr这样的库和Can I use ...这样的网站来了解哪些功能可以使用。
您仍然可以构建一个小测试来确定RegEx在用户浏览器版本中的行为。
d4so4syb3#
ECMAScript是一个行业标准:
ECMAScript是Ecma International在ECMA-262和ISO/IEC 16262中标准化的脚本语言规范。创建ECMAScript是为了标准化JavaScript,以便促进多个独立的实现。
Javascript是一种流行的实现,或多或少:
自ECMAScript标准首次发布以来,JavaScript一直是ECMAScript最著名的实现,其他著名的实现包括JScript和ActionScript。wikipedia
考虑到JavaScript在各种浏览器、node.js等中的实现现状,没有人会专门对自己进行版本控制,而是不断地开发新功能。所以最好的方法是检测(可能是使用第三方库)所需的功能是否存在,然后使用。否则就回到更传统的方法。通常是尝试一些操作,然后检查是否如预期的那样,没有魔法。
lb3vh1jj4#
ECMAScript在每个版本上支持不同的对象。要检测ECMAScript版本,我们可以检查对象是否退出到浏览器中。如果标识了该对象,则表示浏览器支持ECMA版本。
检查以下链接是否有检测ECMAScript版本的良好示例。
https://www.devdiscuss.com/how-to-detect-the-ecmascript-version/
o2gm4chl5#
下面是一个扩展的EcmaScript检测器: