gpt4 book ai didi

javascript - ['null' ,'' ,'undefined' ].indexOf(str) < 0 和 (str !== null || str !== '' || str !== undefined) 等价吗?

转载 作者:行者123 更新时间:2023-11-30 11:32:36 27 4
gpt4 key购买 nike

你知道下面两个函数是否等价吗?

function validate(str)
{
return ( ['null','','undefined'].indexOf(str) < 0 );
}

function validate(str)
{
return (str !== null || str !== '' || str !== undefined);
}

问题的产生主要是因为 indexOf 数组中的 null 和 undefined 撇号。

最佳答案

如您所见,它们返回的结果不同。

主要问题是,您将值转换为字符串以在 validate1 中进行比较。如果您有一个具有此值的字符串,那么您会得到错误的结果。

function validate1(str) {
return ['null', '', 'undefined'].indexOf(str) < 0;
}

function validate2(str) {
return str !== null || str !== '' || str !== undefined;
}

console.log([null, undefined, 0, '', false, 'null', 'undefined'].map(v => [v, validate1(v), validate2(v)]));
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - ['null' ,'' ,'undefined' ].indexOf(str) < 0 和 (str !== null || str !== '' || str !== undefined) 等价吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45668857/

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