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

Hob*_*eBr 1 javascript

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

function test()
{
    return 1;
}

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

function test3()
{
    if (1 == function () { return 1; })
    {
        // Doesn't work
    }
}
Run Code Online (Sandbox Code Playgroud)

我做错了什么或不可能?

tec*_*bar 10

你如果条件:

1 == function () { return 1; }
Run Code Online (Sandbox Code Playgroud)

尝试将数字1函数(而不是其返回值)进行比较.所以它显然不匹配.

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

1 == (function () { return 1; })()
Run Code Online (Sandbox Code Playgroud)

  • 你不需要在函数表达式周围使用parens,在LHS上使用`==`就足以使它成为函数表达式而不是声明.`1 == function(){return 1; }()` (3认同)