Jslint使用' || '运算符代替条件运算符

6

我使用以下代码时,jslint提示我应该使用||运算符:

query = ['browser' + (ieVersion ? ieVersion : 'UNKNOWN')]

我尝试使用||运算符,但结果错误,

query = ['browser' + ieVersion || 'UNKNOWN'] 
// => ['browserundefined']

抱歉,我的错误。我已经尝试使用括号了。现在我会更新问题。 - Mahesh Kulkarni
嗯,但是它可以使用括号,就像你接受的答案一样。 - Dave Newton
编辑:我搞错了,实际上我没有使用括号。从现在开始我会时刻担心优先级的问题。 - Mahesh Kulkarni
3个回答

6

运算符优先级有误,请尝试以下方法:

query = ['browser' + (ieVersion || 'UNKNOWN')]

不使用额外的括号,+ 运算符会更加强大,JavaScript 引擎会将其评估为:

query = [('browser' + ieVersion) || 'UNKNOWN']

请注意,'browser' + ieVersion永远不会为falsy,因此您永远不会看到'UNKNOWN'

2
括号?
query = ['browser' + (ieVersion || 'UNKNOWN')]

2

你需要用括号将表达式括起来:

query = ['browser' + (ieVersion || 'UNKNOWN')]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接