Условное объявление функции в JavaScript

Что такое условное объявление функции, как они выглядят и чем отличаются от обычных?)

Условное объявление функции это когда в зависимости от условия создаешь функцию, то есть например есть условие какой день по порядковому номеру в неделе, и в зависимости от этого создает определенную функцию, вот пример:

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 всё прекрасно работает.