javascript - 在性能方面,在算法复杂性方面,以下两个用于将字符串首字母大写的 JS 函数中哪个更好,为什么?

标签 javascript algorithm time-complexity

考虑以下两个函数

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);

输出:测试名称

性能方面和算法复杂性方面哪个更好,为什么?

还有什么更好或更优化的吗?

谢谢

最佳答案

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

这两种方法产生相同的结果,因此在输出方面没有偏好。仅供引用,输出是 "Test name",而不是您认为的 "Test Name"。生成 “测试名称” 需要不同的过程。

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

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

关于javascript - 在性能方面,在算法复杂性方面,以下两个用于将字符串首字母大写的 JS 函数中哪个更好,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31497104/

相关文章:

javascript - 前端或后端的数组排序

javascript - jQuery 微醉 : manual triggers and delayIn

javascript - 如何在 ckeditor5 中更改 Entermode br 而不是 p?

algorithm - 贪心算法实现,Haskell

python - 跨多个维度的 Top-k 评分

javascript - 我如何在 react 中的循环内生成换行符?

algorithm - 有组织的 3d 点云数据中的连接组件

algorithm - "fixed dimension"的计算复杂度

algorithm - 另一个内部递归调用的递归关系

python - 返回语句中的时间复杂度为 "or"