为什么 ES12 的数字分隔符特性没有实现
前言
JavaScript 的 ES6 引入了很多新特性,为开发者们增强了很多方便,ES6 的出现大大推动了前端开发的发展。而随着 ES6 版本的不断丰富,ES12 作为 JavaScript 的新版本,也引入了很多新特性。但是,在 ES12 版本中,一些开发者期望已久的数字分隔符特性并没有被实现。那么,作为新技术,为什么 ES12 的数字分隔符特性没有实现呢?本文将详细探究这个问题,并为读者提供指导性的意义。
什么是数字分隔符特性
在介绍 ES12 数字分隔符特性是否实现的原因之前,我们需要先了解一下数字分隔符特性是什么。
数字分隔符特性,是一种可以让开发者在数字中添加下划线的方法,让数字更易于阅读和理解。例如,在传统的 JavaScript 代码中,有很多常量数字,例如像 10000 这样的数字,读起来不仅容易出错,而且很不直观。而有了数字分隔符特性之后,开发者可以把数字写成 10_000 的形式,不仅能够使代码更加易读,而且能够增强代码的可维护性和可读性。
为什么 ES12 的数字分隔符特性没有实现
首先,需要明确的是,数字分隔符特性并非一项刚需技术,因此 ES12 对其没有进行实现并不是很让人惊讶。尽管数字分隔符特性能够增强代码可读性,但仅仅依靠它并不能解决代码可读性的根本问题。而且,数字分隔符特性本身也存在一些值得注意的问题。
问题 1:不利于代码压缩
尽管数字分隔符特性能使代码更易于阅读和理解,但它实际上会导致代码压缩不佳的问题。这是因为在代码压缩的过程中,分隔符“_”会被压缩器错误的解读为一个变量,导致代码执行出错。
示例代码如下:
const a = 10_000;
在代码压缩之后,它可能被压缩成这样:
const a = 1_000;
这个失误将导致代码出现错误,从而影响到用户的使用体验。
问题 2:不利于跨平台开发
数字分隔符特性目前只在 JavaScript 和 TypeScript 中受支持。因此,如果开发者需要编写能够运行在其他编程语言平台的代码时,它并不能起到很大的作用。这也是数字分隔符特性未被实现的另一个原因。
问题 3:即便实现,也无法大规模应用
数字分隔符特性实际上是一个由 TC39(一种 JavaScript 标准的委员会)提出的建议,但是它并没有在 ES12 中得以应用。这是因为即便这个特性被应用了,它也只能在最新的浏览器中运行,而不能应用于旧版的浏览器和移动设备。因此,即使数字分隔符特性在 ES12 中得到了实现,它也无法大规模应用。
结论
数字分隔符特性的提出是为了增强代码可读性,让代码更易于维护。但是,数字分隔符特性也因为一些问题而未被应用于 ES12 中。除了导致代码压缩不佳和不利于跨平台开发之外,即便它被应用于 ES12 中,也难以大规模运用。因此,作为开发者们,我们不能完全依靠单一的技术来提高代码可读性,而是应该采用多种技术手段来提升代码的质量和易读性。
参考资料
- ES6 数字分隔符提案:https://github.com/tc39/proposal-numeric-separator
- 你所不知道的 ES 新特性:https://juejin.cn/post/6844904069671731725
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/670f3e025f55128102635fde