Вызов: Неприличный вопрос. Какой подход правильный?

Я изначально сделал несколькими подряд идущими операторами if, и это дало 100% результат.

Несколько if
var age = 5;
var ageGroup;
if (age <= 1) {
  ageGroup = "Котята";
}
if (age > 1 && age <= 3) {
  ageGroup = "Молодые коты";
}
if (age > 3 && age <= 7) {
  ageGroup = "Коты средних лет";
}
if (age > 7) {
  ageGroup = "Почтенные коты";
}
console.log(ageGroup);

Но потом глянул, как другие делают, там идет через else if:

Через else if
var age = 5;
var ageGroup;
if (age <= 1) {
  ageGroup = "Котята";
} else if (age > 1 && age <= 3) {
  ageGroup = "Молодые коты";
} else if (age > 3 && age <= 7) {
  ageGroup = "Коты средних лет";
} else {
  ageGroup = "Почтенные коты";
}
console.log(ageGroup);

Вопрос состоит в следующем: в чем отличие этих двух подходов с точки зрения правильности написания кода? Почему-то мне кажется, что несколько if без else if — это неправильно, но не могу понять, почему.

Читал на MDN Принятие решений в Вашем коде — условные конструкции, там нет примера с несколькими if, только else if.

PS.
Прочитал там же про тернарный оператор, интересно получается:

Через тернарный оператор
var age = 5;
var ageGroup = (age <= 1) ? "Котята" : 
               (age <= 3) ? "Молодые коты" :
               (age <= 7) ? "Коты средних лет":
               "Почтенные коты";

console.log(ageGroup);

Тоже работает на 100%, но не уверен в правильности такого подхода.

читается лучше первый.
но со стороны машины она делает 4 проверки, вместо того, чтобы найти первый удовлетворительный ответ и закончить работу.
тернарный оператор это частный случай else if, как и else if – усложняет чтение и делает чуть легче машине.
поскольку количество операций тут невелико, лучше пренебречь производительностью в угоду поддержки кода.

4 лайка