Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   switch и альтернативы - что использовать? (https://javascript.ru/forum/misc/43642-switch-i-alternativy-chto-ispolzovat.html)

Placido 15.12.2013 13:55

switch и альтернативы - что использовать?
 
Возможно, вопрос не стоит и выеденного яйца, но все же хочу разобраться. Предположим есть задача перевести номер месяца в строку, набросал несколько вариантов функции:

с and or:
return num === 0 && 'jan' ||
    num === 1 && 'feb' ||
...

and:
num === 0 && (string = 'jan');
  num === 1 && (string = 'feb');
...

switch:
switch (num) {
    case 0:
      string = 'jan';
      break;
    case 1:
      string = 'feb';
      break;...

if:
if (num === 0) {
    return 'jan'
  }
  if (num === 1) {
    return 'feb'
  }...


if else:
if (num === 0) {
    return 'jan'
  } else
  if (num === 1) {
    return 'feb'
  } else...

Код на jsperf.

Тесты на скорость победителя не выявили (в разных браузерах победители разные).
Что бы вы использовали для описанной задачи - switch или что-то иное и почему?

danik.js 15.12.2013 14:36

Placido, массивы, не слышал такое слово?

Цитата:

Сообщение от Placido
Тесты на скорость победителя не выявили

А сколько спичек ты пытаешься с экономить?

Placido 15.12.2013 20:48

Действительно. Заработался, видимо. Спасибо

danik.js 16.12.2013 04:55

Цитата:

Сообщение от Placido
if else:

Когда в каждой ветке return, то else теряет смысл. Сам разве не замечаешь?


Часовой пояс GMT +3, время: 18:25.