Это не будет иметь значения, которое вы можете обнаружить, даже в очень, очень большом массиве.Но если вам интересно, вы всегда можете профилировать его на тех движках JavaScript, которые вас интересуют, и использовать ваш реальный код (поскольку синтетический код дает синтетические результаты).
В терминах спецификации, оценка функционального кода, который завершаетсяreturn
(включая неявный возврат стрелки) вместо простого «падения» конца кода приводит к двум различным видам завершения, а затем процесс вызова этой функции различает возврат и невозврат и поставки undefined
в случае невозврата.Код forEach
, конечно, не использует результат, но теоретически в движке JavaScript могут быть разные пути к коду, поэтому теоретически они могут иметь немного другую производительность.
На практике,Тем не менее, я думаю, что вы можете смело предположить, что движки JavaScript оптимизируют это довольно хорошо, и разница не очевидна.
В общем, не оптимизируйте заранее.Реагируйте на проблему производительности в данном бите кода, когда у вас есть проблемы с производительностью в данном бите кода.(Тем не менее, я полностью понимаю, что заинтересован в подобных вещах абстрактно ...)
Просто ради забавы я сделал jsPerf , неувидеть какую-либо существенную разницу в этом синтетическом тесте на Chrome (V8) или Firefox (SpiderMonkey):
![enter image description here](https://i.stack.imgur.com/gJ2mS.png)
Но опять же , синтетическийтесты дают синтетические результаты.