如何在条件之后制作 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
不是表达式,所以不能用作 expr1
或 expr2
.
因为如果 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
作为一个语句更有意义,这意味着它不能用在需要值的地方,例如 &&
运算符的操作数。
嘿,为什么我们不能在 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
不是表达式,所以不能用作 expr1
或 expr2
.
因为如果 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
作为一个语句更有意义,这意味着它不能用在需要值的地方,例如 &&
运算符的操作数。