Въпрос относно задача Password ; JavaScript Basic

function solve(input) {

  let userName = input.shift();

  let password = input.shift();

 

  let userInput;

  while ((userInput = input.shift()) !== password) {}

 

  console.log(`Welcome ${userName}`);

}

Когато кода е подреден по този начин, при дебъгване променливата ми userInput веднага взима правилната стойност, независимо колко пъти преди това ще и подам грешни данни. Защо се получава така? Нещо като switch statement ли се получава - да намира съвпадението без отделни проверки?