Javascript 为什么这个函数只在IE11上使用分号?
我正在编写一些vuejs代码以实现IE 11兼容性。我一直看到这个函数会出现分号错误:Javascript 为什么这个函数只在IE11上使用分号?,javascript,internet-explorer,vue.js,Javascript,Internet Explorer,Vue.js,我正在编写一些vuejs代码以实现IE 11兼容性。我一直看到这个函数会出现分号错误: chemicalFilters: function (chemical) { var max = 0; var min = 100; for (var component of this.components) { if(component.component_name == chemical) { if (max < comp
chemicalFilters: function (chemical)
{
var max = 0;
var min = 100;
for (var component of this.components)
{
if(component.component_name == chemical)
{
if (max < component.component_value)
max = component.component_value;
if(component.component_value != 0 && min > component.component_value)
min = component.component_value;
}
}
if(max == 0 && min == 100)
min = max;
else
{
min = Math.round(min*100);
max = Math.round(max*100);
}
this.component_filters.push({component_name: chemical, range:[min,max], min:min, max:max, originalRange:[min,max]});
},
问题不在你引用的那一行,而是在上面的那一行。ECMAScript 2015中引入了for…of构造,IE11不完全支持该构造。见: 您可以使用类似的工具将其转换为向后兼容的代码,因此:
for (var component of this.components) {
//...
}
将被传输到类似以下内容(取决于您的设置):
用于。。。IEF中不支持of
,您的观点是什么?@constructorforEach
非常宝贵,尤其是与其他方法(如filter
、reduce
或Object.entries)相结合。在可能的情况下,我通常更喜欢使用而不是命令式。我更想知道这是否是一个跨浏览器兼容的解决方案。你知道有什么陷阱吗?
for (var component of this.components) {
//...
}
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = this.components[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
//...
var component = _step.value;
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return != null) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}