问题描述
考虑以下两个功能
a) this.charAt(0).toUpperCase() + this.substring(1);
b) this.charAt(0).toUpperCase() + this.slice(1);
该代码基本上是将字符串的首字母大写。
例如
var name ="test name";
//var capitializeFirstLetter = name.charAt(0).toUpperCase() + name.slice(1);
var capitializeFirstLetter = name.charAt(0).toUpperCase() + name.substring(1);
alert(capitializeFirstLetter);
输出:测试名称
在性能方面,在算法复杂方面,哪个更好,为什么?
还有更好或更优化的东西吗?
谢谢
1楼
两种方法具有完全相同的复杂度。 因此,任何感知到的差异都完全是个人观点。
两种方法产生相同的结果,因此在输出方面没有优先选择。
仅供参考,输出是"Test name"
,而不是您似乎认为的"Test Name"
。
生成"Test Name"
将需要不同的过程。
如果您真的在乎性能的微优化,那么回答所有性能问题的唯一方法是创建一个或多个有意义的测试用例,设计一个性能测试(通常使用jsperf之类的工具),然后在任何JS中测量您的测试用例引擎对您很重要,然后评估结果。
与性能问题一样,过早的优化是愚蠢的,因为在您知道实际上存在与应用程序相关的可衡量的性能问题之前,不要花时间优化性能。 在此之前,您应该编写简洁,易于理解和可靠的代码,并将精力投入其他领域。