Решение задачи JS

Целый день искал ответ на одну задачку по js, но так и ничего не нашел. Возможно поможет сообщество.

Есть данный код:

var a = 1;
if (a) {
  function test() {};
  a += /* ? */ test;
}
console.log(a);

Вопрос: Что нужно подставить вместо ?, чтобы выход был - "1function", если записать код без ? то выход - "1function test() {}". Спасибо за ответ


Ответы (1 шт):

Автор решения: OPTIMUS PRIME

Оператор typeof возвращает тип операнда, в виде строки. Для функций, это "function"

var a = 1;
if (a) {
  function test() {};
  a += typeof test;
}
console.log(a);

P.s. Сейчас функции можно объявлять где угодно. Где-то в будущем ( use strict ) объявление функций внутри блоков if или циклов, может считаться ошибкой. Поэтому стоит избегать такого кода, и объявлять функции вне if.

→ Ссылка