ES10 之 String.prototype.trimStart() 和 String.prototype.trimEnd()
引言
JavaScript 作为一门流行的编程语言,随着时间的推移以及不断迭代,越来越多的新增特性被加入到了其语法中。在 ES10(ECMAScript 2019)中,新特性之一就是 String.prototype.trimStart 和 String.prototype.trimEnd。在本篇文章中,我们将会详细讨论这两个新特性,并介绍它们的学习意义和指导意义。
背景
早期的 JavaScript 并没有提供对字符串去除空格的处理方法,如果想要去除字符串两端的空格,需要自己写正则表达式或者使用 split 和 join 等方法。后来,ES5 提供了 String.prototype.trim 方法,这个方法可以轻易地去除字符串两端的空格。然而,在 ES5 之前,如果想要去除字符串开头和结尾的空格,会比较困难。
在 ES10 中,新添加了 String.prototype.trimStart 和 String.prototype.trimEnd 方法。这两个方法分别用于去除字符串开头和结尾的空格。将它们添加到语言中,使得我们可以更加方便地操作字符串。
Grammar
以下是这两个方法的语法:
String.prototype.trimStart() String.prototype.trimEnd()
两个方法的作用是一样的,但是 trimStart 是相对于字符串开头的空格进行去除,而 trimEnd 是相对于字符串结尾的空格进行去除。如果有空格,则返回去除空格后的新字符串;如果没有空格,则返回原字符串。
Examples
我们来看一下具体的使用实例:
// 去除字符串开头的空格 const str1 = " hello world"; console.log(str1.trimStart()); // "hello world" console.log(str1); // " hello world"
// 去除字符串结尾的空格 const str2 = "hello world "; console.log(str2.trimEnd()); // "hello world" console.log(str2); // "hello world "
这里,我们可以看到,trimStart 方法可以去除字符串开头的空格,而 trimEnd 方法可以去除字符串结尾的空格。如果直接输出原字符串,我们会发现原始字符串中的空格并没有被去掉。
Tips
需要注意的是,这两个方法在旧版本的 JavaScript 引擎中是不支持的。如果我们需要考虑兼容性的话,可以使用如下的 polyfill 实现这两个方法:
if (!String.prototype.trimStart) { String.prototype.trimStart = function() { return this.replace(/^\s+/g, ''); }; }
if (!String.prototype.trimEnd) { String.prototype.trimEnd = function() { return this.replace(/\s+$/g, ''); }; }
这里,我们给 String.prototype 对象添加了 trimStart 和 trimEnd 方法,使用正则表达式将字符串开头和结尾的空格去掉。如果想要进行更加精细的处理,也可以使用其他的方法去除字符串开头和结尾空格。
Conclusion
在本文中,我们对 ES10 中新增的 String.prototype.trimStart 和 String.prototype.trimEnd 方法进行了详细介绍。这两个方法可以方便地去除字符串开头和结尾的空格,减轻了我们的编程压力。此外,我们还要注意这两个方法在旧版本的 JavaScript 引擎中是不支持的,需要进行兼容性的处理。希望读者们能够熟练掌握这两个方法,为日后的编程工作带来更高的效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67b68fb5306f20b3a6290f0c