Однострочный калькулятор



Диалог на собеседовании: Напиши мне калькулятор. Простой калькулятор, когда на вход программе подается выражение, состоящее из 2 чисел, разделенные знаком '+', '-', '*', '/', которое нужно посчитать. У тебя полтора часа.
Цитата отсюда https://habrahabr.ru/post/320830/

Попробовала проверить смогу ли решить такое задание.
Смогла. За 20 минут. Без проблем, но с гуглом. Без гугла, конечно, было бы намного печальнее
Результат:

function calculator(str) {
  var num1 = parseFloat(str);
  var i = ~str.indexOf('+') || ~str.indexOf('-') || ~str.indexOf('*') || ~str.indexOf('/');
  var sign = str[~i];
  var num2 = parseFloat(str.substring(i + 1));
  switch (sign) {
    case '+':
      return num1 + num2;
      break;
    case '-':
      return num1 - num2;
      break;
    case '*':
      return num1 * num2;
      break;
    case '/':
      return num1 / num2;
      break;
    default:
      return  'Я такого оператора не знаю'
  }
}
calculator('7 + 7')

Что искала в гугле
1. Не могла вспомнить название функции parseInt, и только найдя её поняла, что мне нужно parseFloat, благо, они были рядом.
2. Почему-то решила, что это метод и вызывала его так str.parseFloat() вместо parseFloat(str)
3.  Предположила, что indexOf сможет искать один из нескольких символов. Оказывается, он так не умеет. Это не искала, уже в коде увидела
4. Помнила, что проверка на indexOf это какой-то побитовый оператор, а какой пришлось искать
5. Подсматривала синтаксис switch