我有一段 javascript 代码,它使用 ECMA6 数据集属性访问元素 e
的对象 data-foo
属性。不幸的是,这与 <=IE10 不兼容。为了解决这个问题,我将代码重写为使用三元运算符,在支持时使用数据集,在不支持时使用 getAttribute:
(e.dataset) ? e.dataset.foo : e.getAttribute('data-foo');
但为什么我不应该用 e.getAttribute('data-foo')
替换整行呢?当以前的标准同样出色且得到更广泛支持时,使用 ECMA6 标准的真正好处是什么?
最佳答案
首先,dataset
属性似乎不是 ES6 规范的一部分。它是 HTML spec 的一部分.
回答你的问题,
What is the real benefit of using ECMA6 standards when previous standards are just as good and more widely supported?
简单。
如您所见,在 e.dataset.foo
和 e.getAttribute('data-foo')
这两种方法中,前者不那么冗长,因此在许多情况下是可取的。其一,它减少了您发送的 Javascript 文件的大小。
规范甚至强调了这一点:
The dataset IDL attribute provides convenient accessors for all the data-* attributes on an element. ...
[Emphasis mine]
关于javascript - JS ECMA6 - 用于向后兼容的三元运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52164166/