【问题标题】:Functions not executing in ternary operator未在三元运算符中执行的函数
【发布时间】:2021-10-13 21:40:16
【问题描述】:

我在我的代码和 Chrome 控制台中都试过这个,但它没有做我想要的。你知道它为什么不工作吗?

let r = 'd';
r == 'e' ? console.log('itisE') : 
r == 'd' ? console.log('itisD') : console.log('nothing');

Chrome 的控制台打印“未定义”,它不执行函数调用。我的代码也没有(在我的代码中,它是用于各种按钮的 UI 更改)。

【问题讨论】:

  • 对我来说似乎工作正常...您可以编辑 sn-p 以进行复制吗?
  • 是的,它似乎在 sn-p 运行器中工作。不过,它在 chrome 开发工具中没有任何作用,在我的应用程序中运行时也没有。我想知道 sn-p 跑步者使用的是什么线束?
  • @user1944491 确保您没有过滤掉控制台消息。
  • 我已将问题中的代码复制到我的控制台并运行它。如答案中所述,我得到了正确的输出加上undefined
  • 我正在过滤消息。哦!对不起。

标签: javascript function ternary


【解决方案1】:

我假设您在谈论的是 google chrome 浏览器 -> 开发人员工具,然后是其中的控制台。

控制台的工作方式是它必须向您返回/打印任何值,在这种情况下,let r = 'd' 它不打印任何东西,因此显示undefined;因为控制台总是在后台执行Console.log()

当你分配一个值时,你并没有真正打印/返回任何东西,这就是你看到undefined的原因;

【讨论】:

  • 它返回 'd' 来创建变量。它为三元表达式返回 undefined。所以你的整个答案是无效的。
  • @user1944491 不,答案大部分是正确的。只有一个小细节是错误的。这不是let r = 'd'; 而是console.log 调用之一。 console.log 返回undefined。这就是您在浏览器控制台中看到的undefined
  • 你能推荐一个可以区分的函数调用吗?为什么不使用消息更新日志?因为它只是承认函数的存在而不执行它,类似于输入“function x(){}”
  • @user1944491 function x(){} 是一个函数定义。这不是函数调用。该函数未使用function x(){} 调用
猜你喜欢
  • 1970-01-01
  • 2017-12-06
  • 1970-01-01
  • 1970-01-01
  • 2018-04-03
  • 2013-07-13
  • 1970-01-01
  • 2015-04-07
  • 2016-11-24
相关资源
最近更新 更多