如何在条件之后制作 Return?

how made a Return after conditional?

嘿,为什么我们不能在 JS 中执行此操作?

价值 && return 价值;

例子

function inGUI(x, y){ // check if is in gui
    for (var i = DEBUG.children.length;i--;){
        var gui = DEBUG.children[i];
        var check = isInside.call(gui,x,y);
        check && return check; // not work

    };
};

为什么我需要做一个 IF 条件

if(check){return check}

编辑: 解决了谢谢大家; @dave 的有趣方式:

function inGUI(x, y){ // check if is in gui
    var is_inside = false;
    for (var i = this.children.length; !is_inside; i--){
        var gui = this.children[i];
        is_inside = isInside.call(gui,x,y);
    };
    return is_inside;
};

太酷了

因为javascript的语法不允许。

expr1 && expr2

&& returns expr1 if it can be converted to false; otherwise, returns expr2. Thus, when used with Boolean values, && returns true if both operands are true; otherwise, returns false.

return 不是表达式,所以不能用作 expr1expr2.

因为如果 expr1 可以转换为 false,它会变成“return expr2”,所以你实际上是在说 var x = return true,这显然(我希望)不会起作用 - (return是语句,不是表达式,所以不能这样用。

如果你想简化代码,你可以这样做:

function inGUI(x, y){ // check if is in gui
    var is_inside = false;
    for (var i = DEBUG.children.length; !is_inside; i--;){
        var gui = DEBUG.children[i];
        is_inside = isInside.call(gui,x,y);
    };
    return is_inside;
};

return 是语句而不是表达式。不同之处在于表达式的计算结果是可以在表达式上下文中使用的值。

如果 return 是一个表达式,您可以像那样使用它,但您也可以像 console.log(return 5);var x = return 1; 那样使用它。目前还不清楚这些应该做什么,因为 return 也会停止执行函数的其余部分。 return 作为一个语句更有意义,这意味着它不能用在需要值的地方,例如 && 运算符的操作数。