Javascript:==数字和内联函数之间的运算符

Javascript:==数字和内联函数之间的运算符,javascript,Javascript,我试图在使用==时使用JS内联函数,但它不起作用: function test() { return 1; } function test2() { if (1 == test()) { //Works } } function test3() { if (1 == function () { return 1; }) { // Doesn't work } } 我做错了什么事还是不可能?如果条件: 1

我试图在使用==时使用JS内联函数,但它不起作用:

function test()
{
    return 1;
}

function test2()
{
    if (1 == test())
    {
        //Works
    }
}

function test3()
{
    if (1 == function () { return 1; })
    {
        // Doesn't work
    }
}
我做错了什么事还是不可能?

如果条件:

1 == function () { return 1; }
尝试将数字
1
与函数(而不是其返回值)进行比较。所以它显然不匹配

将其更改为如下所示的将使其通过:

1 == (function () { return 1; })()
如果条件:

1 == function () { return 1; }
尝试将数字
1
与函数(而不是其返回值)进行比较。所以它显然不匹配

将其更改为如下所示的将使其通过:

1 == (function () { return 1; })()

if(1==(function(){return 1;})()
如果调用它匹配的函数,但函数本身不等于1.FWIW,在这种情况下内联函数没有意义。
if(1==(function(){return 1;})()
如果调用它匹配的函数,但函数本身不等于1.FWIW,在这种情况下内联函数没有任何意义。您不需要函数表达式周围的参数,在LHS上有
==
就足以使其成为函数表达式而不是声明
1==function(){return 1;}()
@Quentin-谢谢你提供的信息。我总是用大括号括起来(主要是为了清楚起见)。@Quentin是真的,但通常认为最好用括号括起来。最好让他们从一个好的实践开始,然后再找出原因;)您不需要函数表达式周围的参数,在LHS上有
==
就足以使其成为函数表达式而不是声明
1==function(){return 1;}()
@Quentin-谢谢你提供的信息。我总是用大括号括起来(主要是为了清楚起见)。@Quentin是真的,但通常认为最好用括号括起来。最好让他们从一个好的实践开始,然后再找出原因;)