javascript - 受括号影响的 JavaScript 中的条件表达式

标签 javascript

我在一本书上看到了这个说法,但我还没有找到解释。

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/

相关文章:

javascript - 是否有可能在发布之前重命名 html 文件输入的文件

javascript - 闭包中的 var functionName 与 functionName 赋值

javascript - 为什么这个仅输入数字的函数实际上不适用于输入类型 :number?

javascript - 如何基于onclick向数据表填充数据

javascript - 当一个下拉选项打开时,另一个会关闭

javascript - 无法使用 jquery 切换 blockquotes 的可见性

javascript - 在 JS 中更改子 SVG 元素的属性

javascript - [JS]更改多级对象值

javascript - 为什么程序返回未定义?

javascript - 与 webpack/browserify 捆绑时如何排除代码路径?