【问题标题】:Function declaration as if statement condition函数声明为 if 语句条件
【发布时间】:2016-05-27 08:40:36
【问题描述】:

几天前,我试图在 if() 语句中声明一个函数,我尝试了多种方式,但都没有成功。

有可能做这样的事情吗?

if(!function() { return false; }) {
    console.log("False");
} else {
    console.log("True");
}

【问题讨论】:

  • 您正在传递一个非空对象,因此条件的结果是“真”。您没有检查该函数的返回值。
  • 我对 -3 反对票的问题有什么问题?在 Google 上搜索之前,我从来没有来过这里。
  • 别把你的一天搞砸了,这不值得。
  • @KimGysen 哈哈当然不是,但我只是想知道:P 通常当人们投反对票时,他们会告诉他们哪里出了问题

标签: javascript node.js function if-statement syntax


【解决方案1】:

你可以......你只需要执行它。查找 IIFE 了解更多信息。

if (!(function() { return false;}())) {
  console.log("False");
} else {
  console.log("True");
}

函数表达式的形式是function(){}。要在声明时调用表达式,您必须将格式更改为 (function(){}())

【讨论】:

  • 谢谢。这就是我一直在寻找的。​​span>
【解决方案2】:

注意:此解决方案不起作用!

这将起作用:

if((function() { return false; }) !== true) {
  console.log("False");
} else {
  console.log("True");
}

【讨论】:

  • 所以区别是 '===' 或 '!==' 而不是 '==' 或 '!=' 比较?如果我没记错的话,这还会检查返回的类型是否相同。你能再解释一下吗?
  • 不同的是大括号。
  • 关于这个的注释,这是检查函数是否被声明而不是返回值。
  • @Goblinlord 这不是我要找的。谢谢!
猜你喜欢
  • 2012-04-21
  • 2014-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多