【问题标题】:Test if variable is Null, Undefined, Blank, or Empty Object including Date items测试变量是否为 Null、未定义、空白或空对象,包括日期项
【发布时间】:2020-03-04 21:49:28
【问题描述】:

如何检查变量(是否为数字、字符串、日期、对象等)

为空、空白、未定义还是为空?

以下对于任何日期都失败,lodash isEmpty 总是返回 NotEmpty 作为日期。

if (test == null || test == '' || _.isEmpty(test){
    console.log('variable is empty');
}

无论如何,这样做是干净的吗?阅读下面的链接,

How to determine if variable is 'undefined' or 'null'?

How do I test for an empty JavaScript object?

【问题讨论】:

  • 什么定义了“空”日期?事实上,我认为任何日期对象都不应该在这样的条件下返回 true。
  • 您可能不应该在一次检查中处理所有这些情况,而应该准确地确定您需要什么并检查其有效性。例如,如果您要检查有效日期,请使用lodash.isDate,而不是检查它是否为undefinednullstringnumber 或其他。
  • 我能想到的日期为空的唯一条件是new Date(0)(距纪元 0 毫秒)。但这绝不会是您在绝大多数大多数情况下必须处理的值。
  • 非常需要一个干净的答案来适应日期
  • @Klaycon 任何空、未定义或空的日期

标签: javascript typescript lodash javascript-objects


【解决方案1】:

简单地测试变量的falsiness 应该涵盖所有这些情况。

if (!test){
    console.log('variable is empty');
}

请注意,与您当前的条件一样,此条件对于任何Date 对象都不会成立,因为Dates 没有定义“虚假”状态。但是,如果应该具有 Date 的变量具有 nullundefined ,则它将起作用。

【讨论】:

  • 如果false“空、空白、未定义或空”?我认为这些都不是。虽然公平地说,这个问题有点不清楚。
  • 非常需要一个干净的答案来适应日期
  • 接受了答案并给了分数,也请随意竖起大拇指,谢谢
  • 空对象{} 不是假值。对于上述所有给定情况,接受的答案并不正确
猜你喜欢
  • 1970-01-01
  • 2020-06-09
  • 1970-01-01
  • 1970-01-01
  • 2020-01-02
  • 2019-01-03
  • 1970-01-01
相关资源
最近更新 更多