开发小知识点
前端/JS
数组的
length函数
是每次重新获取的,这个会导致消耗时间,如果要多次使用length函数可以先把长度赋值给一个常量再使用计算代码执行用时可以使用
console.time
和console.timeEnd
函数,这两个函数可以计算出两个时间点之间的时间差。如果想要更精准测量非常短的代码片段或者对性能要求极高的场景下,可以使用performance.now()
函数来获取当前时间戳,返回一个精确到毫秒的时间戳,它基于高性能的时间源,能更精准地计算代码执行所花费的时间间隔,便于更准确地对比不同代码实现的性能差异。V8 引擎
(JavaScript 的主流引擎之一)在执行代码过程中会进行优化
,例如即时编译(JIT
)等操作,它会根据代码的执行情况动态调整优化
策略。当先执行的代码片段运行后,可能会使 V8 引擎进入某些特定的优化状态,这就有可能影响后续代码执行的性能表现,让后续代码的性能表现变强。尽量少用
全局变量
,全局变量在整个 JavaScript 执行环境中都可访问,这会增加变量查找的时间。当 JavaScript 引擎在查找一个变量时,它会先从当前作用域开始,然后逐级向外查找,直到全局作用域。如果频繁使用全局变量,会使这个查找过程变慢。而且全局变量容易被意外修改,导致代码的可维护性和可读性降低。不同的
数据结构
有不同的性能特点。例如,数组适合快速地按索引访问元素,但在插入和删除元素(特别是在数组中间)时效率较低;而 JavaScript 中的 Set 和 Map 数据结构在查找、添加和删除元素方面有更好的性能(在某些情况下)。根据具体的应用场景选择合适的数据结构可以提升性能。