gpt4 book ai didi

Javascript 条件空字符串

转载 作者:行者123 更新时间:2023-11-28 17:32:54 24 4
gpt4 key购买 nike

我想验证一个日期(在 arg 中作为格式如 99/99/9999 的字符串传递)。根据我的需要,空/空/未定义字符串应该被认为是好的。

<小时/>

这是我的验证函数:

function isDateValid(date) {
if(date && date.length == 0){
return true;
}
//more checks
}
<小时/>

我得到了奇怪的结果,我无法解释:

  • 使用空字符串(字符长度为 0 的字符串)时,条件将被计算为空字符串,因此不会达到返回 true

  • 使用填充字符串(例如:“01/01/2018”)时,条件将被评估为 false bool 值。

我知道如何更改以使代码根据需要运行......但这让我很难理解为什么它有两种不同的行为(一次是字符串,一次是 bool 值)。

我这里需要一名队长!

<小时/>

添加一些console.log作为

function isDateValid(date) {
console.log(date);
console.log(date.length);
console.log(date && date.length == 0);
console.log(typeof (date && (date.length == 0)));
if(date && date.length == 0){
return true;
}
//more...
}

将产生以下输出:

with 01/01/2018 with empty string

这是一个 fiddle https://jsfiddle.net/v8easudj/2/

最佳答案

JavaScript 有一个概念 truthyfalsy coercion所以“”(空字符串),null和undefined(以及其他一些)都是假的,所以

if (!date)
return true;

将同时检查日期是否为 null、未定义或空字符串并返回 true。

有关更多信息,请查看 MDN 上的文章

关于Javascript 条件空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49875374/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com