Javascript 是否需要在JS和/或中重述左侧?

Javascript 是否需要在JS和/或中重述左侧?,javascript,Javascript,不知什么原因,我的大脑抽筋了。在同一属性上使用和/或时,是否需要重复左侧 例如,这是否罚款: if(name === 'Bob' || 'Bill') 或者这是正确的方式: if(name === 'Bob' || name === 'Bill') 如果你想比较两者,第二个是正确的 name === 'Bob' || name === 'Bill' 上面检查name是否等于Bob或name是否等于Bill返回true 而这个 name === 'Bob' || 'Bill' 上面说如果n

不知什么原因,我的大脑抽筋了。在同一属性上使用
和/或
时,是否需要重复左侧

例如,这是否罚款:

if(name === 'Bob' || 'Bill')
或者这是正确的方式:

if(name === 'Bob' || name === 'Bill')

如果你想比较两者,第二个是正确的

name === 'Bob' || name === 'Bill'
上面检查
name
是否等于
Bob
name
是否等于
Bill
返回
true

而这个

name === 'Bob' || 'Bill'

上面说如果
name
等于
Bob
return
true
否则返回
Bill

如果要在两者之间进行比较,则第二个是正确的

name === 'Bob' || name === 'Bill'
上面检查
name
是否等于
Bob
name
是否等于
Bill
返回
true

而这个

name === 'Bob' || 'Bill'

上面说如果
name
等于
Bob
return
true
否则return
Bill

如果您想用
name
检查两个名字是否相等,那么第二个选项是正确的,尽管我更喜欢以下选项

if (~['Bob','Bill'].indexOf(name)) {}

因为它有点短,更容易延伸

如果您想用
名称
检查两个名称是否相等,则第二个选项是正确的,尽管我更喜欢以下选项

if (~['Bob','Bill'].indexOf(name)) {}
因为它有点短,更容易延伸

if(name=='Bob'| | name=='Bill')
是正确的方法
if(name=='Bob'| | name=='Bill')
是正确的方法