模式返回var &&var = = = & # 39;一些# 39;在javascript

meaning of pattern return var && var ==='something' in javascript

本文关键字:var javascript 返回 模式 一些      更新时间:2023-09-26

在一个函数中,我看到了return myVar && anotherVar === 'error';

该语句是否返回true/false取决于&&在计算了两个条件后,语句的值是真还是假?如果a和b都为真,返回结果应该为真,对吧?我是这样认为的,但是当我在chrome控制台测试它时,当我做var a = 'abc', b = '123';然后做return a && b;时,我得到了Uncaught SyntaxError: Illegal return statement的错误

任何想法吗?

不需要同时计算这两个条件。javascript中的逻辑运算符使用一种叫做短路求值的东西,这样系统只在能够仅根据第一个条件确定结果时才运行第一个条件。代码相当于:

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.printdebug.log的结果。

你得到这个错误,因为你没有使用return函数内,尝试在任何控制台中:

function foo() {
    var a = "abc", b = "123";
    return a && b;
};
foo();

根据&&的问题,这是一个逻辑与运算符,如果第一个(a)在这种情况下是false,第二个将不会被计算。