Можешь объяснить операционные различия между методами массива `push()`/`pop()` и `shift()`/`unshift()` в JavaScript, включая то, как они влияют на производительность массива? — ДейлиПреп