Это не обязательно вопрос jQuery, но он довольно хорошо применим к большинству языков программирования. И на самом деле, в этом вопросе гораздо больше, чем просто проблемы с производительностью.
Следует иметь в виду, что если вы сохраняете значение, то нет вероятности того, что оно изменится во время выполнения вашего последующего кода. В большинстве случаев это то, что вы ожидаете и хотите. Но в некоторых случаях также возможно, что вызов val () вернет другое значение, особенно если вы выполняете цикл и делаете что-то, что занимает какое-то значительное время.
В вашем конкретном примере шансы на это довольно малы, потому что это всего лишь несколько вызовов, а не циклическая конструкция. Учитывая, что звонков всего несколько, производительность, скорее всего, не будет здесь главной проблемой. Но суть теории остается: если вы хотите гарантировать, что значение не изменится, поместите его в переменную. Так как это также дает вам лучшее из соображений производительности, я думаю, что в большинстве случаев это будет наилучшей практикой.