【发布时间】:2018-01-17 00:50:50
【问题描述】:
为什么我们不能在 JS 中做到这一点?
估值 && 返回估值;
例子
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;
};
太酷了
【问题讨论】:
-
not work以什么方式? - 没关系,是的,这是无效的语法 -
因为语言就是这样...... return 不能成为条件表达式的一部分,因为 return 语句没有可用的值以条件方式使用。
-
我问为什么?我需要理解,语法是逻辑
-
除了它是无效的之外,如果我不得不猜测,它不是在
return之后读取...换句话说,它读取为check && return.... 为什么?可能是因为它的语法无效。你不能在那里放一个 return 语句,所以它的行为不像预期的那样。 -
@PHPglue 它甚至不是有效的语法,所以它“不应该”运行(不幸的是 JS 是 JIT 编译的)。请参阅其他类似的问题:stackoverflow.com/questions/35231609/…
标签: javascript if-statement return conditional return-value