Тернарный оператор в JavaScript-функции

212
14 марта 2018, 07:44

Здравствуйте!

Результат кода - undefined. Подскажите, пожалуйста, как правильно использовать тернарные операторы в JS-функциях и вообще можно ли их использовать таким образом?

var f = function fact(x) {x <=1 ? 1 : x * fact(x-1)}; 
document.write(f(3));

Answer 1

Вы забыли вернуть из функции значение

var f = function fact(x) { return x <= 1 ? 1 : x * fact(x-1)}; 
document.write(f(3));

Вариант в стиле шик-модерн:

const f = x => x <= 1 ? 1 : x * f(x-1); 
console.log(f(3));

Answer 2

Тернарный оператор в JavaScript (?:) - это оператор принимающий три операнда. Он часто используется в качестве укороченного варианта условного оператора if. Ваш код вполне рабочий, только функция ничего не возвращает, поэтому у вас undefined.

var f = function fact(x) { 
  return x <= 1 ? 1 : x * fact(x - 1) 
}; 
 
document.write(f(3));

Можно еще так сделать ваш вариант кода, без переменной f:

function fact(x) { 
  return x <= 1 ? 1 : x * fact(x - 1) 
}; 
 
document.write(fact(3));

Можно почитать:

  • Функции
  • Условные операторы: if, '?'
READ ALSO
Проблема с выводом данных в формате JSON в NodeJS

Проблема с выводом данных в формате JSON в NodeJS

Всем привет, столкнулся с проблемой вывода в формате JSON в NodeJSМожет я как-то не так это делаю? Формирую объект prod собирая данные из массива...

189
JS случайное значение массива

JS случайное значение массива

Нужно по нажатию на кнопку присвоить ей(кнопке) backgroundColor на один из цветов радугиЯ сделал это следующим образом

216
разбор строки во vue.js

разбор строки во vue.js

с бэка прилетает массив строк с разделителями в виде запятой:

145
Все о VPS Hosting

Все о VPS Hosting

У меня есть не большое веб-приложениеХочу запускать на интернете

203