if и ternary в return

152
27 октября 2021, 23:50

Почему в return нельзя вставить if

function(foo){
 return( if(...){...}else{...} )
}

Тернарный оператор работает как нужно.

function(foo){
 return( x ? y : z )
}
Answer 1

Обратимся к спецификации:

ReturnStatement[Yield, Await]:
    return ;
    return [no LineTerminator here] Expression[+In, ?Yield, ?Await];

Здесь видно, что после return должно идти выражение, в то время как if является statement

Поэтому нельзя делать return if...

В то же время тернарный оператор является выражением именно поэтому его допустимо использовать вместе с return.

READ ALSO
Проверка типа данных ячейки в таблице HTML с помощью javascript [дубликат]

Проверка типа данных ячейки в таблице HTML с помощью javascript [дубликат]

Как проверить, что в ячейке лежит число или нет с помощью javascript?

100
Развернуть Cordova на iOS используя Visual Studio и iPhone

Развернуть Cordova на iOS используя Visual Studio и iPhone

Подскажите пожалуйста, кто знает, есть Windows на котором установлена Visual Studio и инструменты CordovaСоздал приложение для Android, и хочу теперь развернуть...

71
Leaflet contextmenu не закрывается

Leaflet contextmenu не закрывается

Никак не могу разобраться почему не пропадает меню при клике вне картыМеню пропадает только при клике на кнопку меню

100
Как показать блок, если у определенного display:block;?

Как показать блок, если у определенного display:block;?

Как показать блокi-am-hiding только тогда, если у

161