【问题标题】:falsey var showing undefined in console.log在 console.log 中显示未定义的 falsey var
【发布时间】:2015-06-24 19:14:04
【问题描述】:

var statusDatesDescending = ko.computed(function () {
  var result = cachedSortExpression() === "StringValue";
  logger.log(result);
  return result;
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

以下在结果为 false 时在控制台中提供:

logger.log("降序:", 结果); 降序:未定义

当结果为真时,以下内容在控制台中提供:

logger.log("降序:", 结果); 降序:真

【问题讨论】:

  • 当你logger.log(false)时会发生什么?
  • 'var result = false' 'undefined' 'result' 'false' 'console.log(result)' 'undefined'
  • console.log(falseyVar) 未定义。
  • 等等,您使用的是logger.log 还是拼写错误?如果您使用的是日志记录实用程序,则可能存在转换值的错误/功能。如果您使用的是console.log,则没有任何问题;您可能看到的是console.log返回值,这没什么。
  • 我的回答令人困惑。我用 Durandal 的 logger.log 和原生的 console.log 都试过了 谢谢回复。

标签: javascript google-chrome knockout.js durandal


【解决方案1】:

如果您使用交互式控制台,您可能会看到来自console.log 的返回,如此处所示。

注意false 是如何在undefined 之前记录的。 console.log 调用执行,记录到控制台,然后返回未定义。显示调用的返回值是因为交互式控制台总是显示您输入的任何函数的结果。

【讨论】:

  • 感谢您的回复。对于有问题的案例,没有出现“错误”。只是未定义的。
  • 我看到你更新的代码 sn-p 使这个答案过时了。不幸的是,我无法删除带有赞成票的答案
猜你喜欢
  • 1970-01-01
  • 2019-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-28
  • 2019-12-12
  • 1970-01-01
相关资源
最近更新 更多