在一个函数中,我看到了return myVar && anotherVar === 'error';
此语句是否返回true / false取决于&&和在评估两个条件后,语句评估为真还是假?所以,如果我们说a和b都是真的,那么返回的结果应该是真的,对吗?我是这么认为的,但是当我在Chrome控制台中测试时,当我Uncaught SyntaxError: Illegal return statement
然后var a = 'abc', b = '123';
return a && b;
有什么想法吗?
答案 0 :(得分:3)
不一定评估这两个条件。 javascript中的逻辑运算符使用称为short-circuit evaluation的东西,以便系统只运行第一个条件,如果它可以仅根据第一个条件确定结果。代码等同于:
if (myVar)
{
//if the first condition fails we never enter the block
// and never check this condition
if (anotherVar === 'error')
{
return true;
}
}
return false;
这是一种常见的模式,一旦您看过几次就很容易理解,因此,使用您遇到的问题的简短形式而不是写出从这个答案中弄得一团糟。
对于您的测试,不只是致电return
,而只是debug.print
或debug.log
结果。
答案 1 :(得分:2)
您收到该错误是因为您未在函数内使用let data: Vec<String> = string.split('\n').map(String::from).collect();
,请在任何控制台中尝试以下操作:
.featured-series {
width:606px;
height:406px;
display:inline-block;
float:left;
margin:3px 3px 3px 3px;
background-color:black;
}
根据return
问题,这是一个逻辑AND运算符,如果在这种情况下第一个(function foo() {
var a = "abc", b = "123";
return a && b;
};
foo();
)是&&
,则第二个不会被评估。