javascript - 什么决定了可用的 ECMAScript 版本?
问题描述
我被指派调试一个旧的 Visual Basics 网站,我们只能在其中访问 JavaScript。
问题是到处都在使用“With”语句,有些甚至在里面包括“remove()”。
这让我想知道,是浏览器决定了 ECMAScript 的可用版本,还是其他什么?因为如果是浏览器,那么我想我可以使用“let”来解决我猜想“with”已经被用来解决的大部分范围问题。
编辑:代码中如何使用 with 语句的示例(可以在注释中找到上下文):
function firstFunction(input1) {
var someVariable = document.getElementById('someId');
var i = someVariable.options.length;
with (someVariable) {
options[i] = new Option();
options[i].text = input1.Name;
options[i].value = input1.Id + ';' + input1.Type;
i++;
}
}
function secondFunction(input2) {
var someVariable = document.getElementById('someId');
var i = someVariable.options.length;
with (someVariable) {
options[i] = new Option();
options[i].text = input2.PrettyName;
options[i].value = input2.Name;
i++;
}
}
解决方案
它是浏览器使用的 JavaScript 引擎:Chrome、Chromium 和 Opera 中的 V8;火狐中的蜘蛛猴;IE8 中的 JScript;以及 IE9+ 和 Edge 中的 Chakra(IE9+ 中的 Chakra 版本非常过时;Edge 的版本非常最新)。
推荐阅读
- image - 如何在圆环图切片上显示图像?
- javascript - 无法多次调用 fetch api
- json - json文件项目作为单个项目插入mongodb
- google-app-engine - 批处理位于 Google Cloud Storage Bucket 上的对象的最佳方法
- r - 填写表(R)中缺失的枚举值
- react-native - 如何管理多个用户的应用内购买
- apache-spark - 参数文件中 Spark SQL 的 IN 子句中的多个参数
- c# - 文件 CrystalReportfile.rpt 中的错误:无法加载数据库信息
- php - ajax 调用它的重复追加相同的数据
- nestjs - nestjs:@Transform 在 typeorm 实体中不生效?