Подтвердить что ты не робот

Сокращение Javascript if-else и возврат

Может ли сокращение javascript для if-else возвращаться из функции? Если да, то как это будет работать.

например. У меня есть это:

if(boolean){
 return;
}

и я хотел бы написать это как это:

(value)? return;

Chrome жалуется, что возвращение неожиданно. Нужно ли писать что-то подобное, чтобы оно было действительно?

4b9b3361

Ответ 1

Нет, вы не можете этого сделать, если не вернете значение. Например, если ваша функция должна была вернуть значение, которое вы могли бы написать:

return boolean ? 'foo' : 'bar';

Но вы не можете остановить выполнение функции, вернув void с помощью условного оператора.

Ответ 2

Если вы намерены вернуться из функции в этот момент своего исполнения, независимо от того, оценивает ли тест true или false, вы можете использовать,

return (value) ? 1 : 2;

Но если вы просто хотите вернуться раньше, когда тест оценивает истину (например, как проверка работоспособности, чтобы предотвратить выполнение, когда параметры недействительны), самое короткое, что вы можете сделать:

if (boolean) return;

Ответ 3

if(boolean) return;

Однострочный, читаемый, совершенно действительный;

Ответ 4

Вы хотите сделать ternary operator

это:

(bool) ? ifTrue : ifFalse;

Обратите внимание: вы не можете опустить другую часть тернарного оператора.

http://en.wikipedia.org/wiki/Ternary_operation

Ответ 5

Условный "тернарный оператор" (condition? expression to evaluate when true: expression to evaluate when false) часто используется для простого условного назначения переменных.

если тебе надо:

if( x > 0) {
   a = 10;
}else{
   a = 30;
}

ты можешь написать:

a = (x>0)? 10 : 30; 

Вы можете думать об этом как о простой функции, которая принимает 3 параметра (p1, p2, p3), если p1 истинно, он возвращает p2, а если p1 false, то он возвращает p3.

(p1)? p2 : p3;

И точно так же, как такая функция, нет способа заставить родительскую функцию вернуться на основе условия. Поэтому это не значит, что если /else.

Ответ 6

Я знаю, что это старый вопрос, но я хочу добавить, что существует нестандартный способ возврата из функции в стенограмме if-else, и это выполнение выражения с выражением немедленного вызова (IIFE):

function outOfFunction(boolean){

    return (boolean)?(()=>{return true;})():(()=>{return false;})();

}

console.log(outOfFunction(true));
console.log(outOfFunction(false));

И если мы хотим быть вне функции или продолжать с другой задачей:

    function shorthandExampleJustTrue(boolean){

        var someVar = "I'm out";        

        return (boolean)?(()=>{return true;})():(()=>{

          console.log("here my code ");

          console.log(someVar);

          return "anythig else";


        })();
    }

console.log(shorthandExampleJustTrue(true));
console.log(shorthandExampleJustTrue(false));

Когда мы используем функции стрелок, мы можем получить доступ к переменным из контекста непосредственных функций.