JS ECMA6-三元运算符,向后兼容

时间:2018-09-04 10:27:34

标签: javascript ecmascript-6

我有一段JavaScript代码,该代码使用ECMA6数据集属性来访问元素data-foo的对象e属性。不幸的是,这与<= IE10不兼容。为了解决这个问题,我将代码重写为使用三元运算符,在支持时使用数据集,在不支持时使用getAttribute:

(e.dataset) ? e.dataset.foo : e.getAttribute('data-foo');

但是为什么我不应该只用e.getAttribute('data-foo')替换整行?当以前的标准同样出色并得到更广泛的支持时,使用ECMA6标准的真正好处是什么?

1 个答案:

答案 0 :(得分:3)

首先,dataset属性似乎不属于ES6规范的一部分。它是HTML spec的一部分。

提到您的问题

  

当以前的标准同样出色并得到更广泛的支持时,使用ECMA6标准的真正好处是什么?

简单。

您可能会发现,在e.dataset.fooe.getAttribute('data-foo')两种方法中,前一种方法较为冗长,因此在许多情况下是可取的。首先,它减少了您附带的Javascript文件的大小。

规范甚至强调了这一点:

  

数据集IDL属性为元素上的所有data- *属性提供便捷访问器。 ...

     

[重点突出]