性能方面,算法的复杂性 - 以下两个JS为字符串的首字母首字母化的哪个更好,为什么?

时间:2015-07-19 01:21:11

标签: javascript algorithm time-complexity

考虑以下两个功能

a) this.charAt(0).toUpperCase() + this.substring(1);

b) this.charAt(0).toUpperCase() + this.slice(1);

代码基本上是字符串的第一个字母。

e.g。

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 个答案:

答案 0 :(得分:1)

这两种方法具有完全相同的复杂性。因此,任何感知到的差异都完全是个人意见。

这两种方法产生相同的结果,因此在输出方面没有偏好。仅供参考,输出为"Test name",而不是您认为的"Test Name"。生成"Test Name"需要一个不同的过程。

如果您真的关心微优化性能,那么回答所有性能问题的唯一方法是创建一个或多个有意义的测试用例,设计性能测试(通常使用像jsperf这样的工具),然后测量您的测试用例无论哪种JS引擎对您很重要,然后评估结果。

与性能问题一样,过早优化是愚蠢的,因为在您确实知道实际存在对您的应用程序重要的测量性能问题之前,不应花时间优化性能。在此之前,您应该编写干净,易于理解和可靠的代码,并将开发工作花在其他领域。