gpt4 book ai didi

javascript 检查字符串是否等于 foo 或 bar

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

我试图计算出一个字符串是否等于“foo”或“bar”,通过下面的测试,看起来 test4 是实现此目的的最佳方法,但我认为 test3 是最好的方法,但是这个返回 false。

为什么这会返回 false,是否有比 test4 更好的方法?

var arr = ['a','b','c','d','e'];
var str = 'f';
var test;
test = str == arr[0] ? true:false;
console.log('test1',test);
console.log('returns false');

test = str == 'f' ? true:false;
console.log('test2',test);
console.log('returns true');

test = str == (arr[0] || 'f') ? true:false;
console.log('test3',test);
console.log('returns false');


test = str == (arr[0] && 'f') ? true:false;
console.log('test4',test);
console.log('returns true');

test = (str == arr[0]) || (str == 'f') ? true:false;
console.log('test5',test);
console.log('returns true');

最佳答案

|| 运算符不允许您像第三个测试中那样编写表达式来执行测试所期望的操作。它在语法上是正确的,但在语义上与您想要做的不同。

最后一个测试可以简单地编写:

test = (str == arr[0]) || (str == 'f');

不需要吗? : 运算符;上述表达式的结果已经是 truefalse,因为 || 两边都返回 bool 值。

进一步解释一下,

test = str == (arr[0] || 'f');

将首先计算||表达式。它将计算 arr[0],并且如果该子表达式的结果不是假(不是 0""NaN falsenullundefined),则 || 的值为 arr[0] 是。否则,|| 的值为'f'。只有这样才会进行==比较,并且str将与arr[0]中的仅一个进行比较> 和'f'

关于javascript 检查字符串是否等于 foo 或 bar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36392500/

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