Что такое условное объявление функции, как они выглядят и чем отличаются от обычных?)
Условное объявление функции это когда в зависимости от условия создаешь функцию, то есть например есть условие какой день по порядковому номеру в неделе, и в зависимости от этого создает определенную функцию, вот пример:
var day = prompt("Какой день недели? (от 1 до 7)", 7);
if (day > 5) {
function whatDay() {
alert( 'Сегодня выходной!' );
}
} else {
function whatDay() {
alert( 'Сегодня рабочий день ' );
}
}
whatDay();
В этом примере у нас в зависимости от значения введенного пользователем будет создаваться соответствующая функция, то есть если день недели у нас больше 5 то создается функция которая alertом выводит что сегодня выходной день, в другом случае будет создаватся функция которая скажет что день рабочий.
Так же тут есть один нюанс, если дописать use strict:
'use strict'
В начале скрипта, тогда работать тот же код уже не будет, так как будет нужно указывать всё по современному стандарту, поэтому нужно переписывать эту функцию в expression function, вот так:
'use strict'
var day = prompt("Какой день недели? (от 1 до 7)", 7);
var whatDay = (day > 5)?
function whatDay()
{ alert( 'Сегодня выходной!' ); }:
function whatDay()
{ alert( 'Сегодня рабочий день ' ); };
whatDay();
Так же можно просто создать переменную и дальше присваивать ей значение функций, суть в том что в случае с function expression всё прекрасно работает.