我在一本书上看到了这个说法,但我还没有找到解释。
function foo() { return false }
alert(foo() == !foo); //message box says TRUE
alert(foo() == !foo()); //message box says FALSE
我一直认为第一个警报会显示 FALSE。但它说 TRUE (?)
您可以看到最后一条语句中的括号使表达式返回 FALSE。请告诉我这里缺少什么。
最佳答案
foo
是一个函数,因此它不是 false
function foo() { return false; };
alert(typeof foo); // function
alert(typeof foo()); // boolean
alert(!function (){}); // false
关于javascript - 受括号影响的 JavaScript 中的条件表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16195375/