Javascript 三元运算符的帮助

Javascript 三元运算符的帮助,javascript,jquery,Javascript,Jquery,我认为我没有正确使用三元运算符,因为我没有得到我想要的结果: buildHTML.push("<a href='http://mysite/user?screen_name=" + data.friend == null ? data.user.me : data.friend + "'>" + data.friend == null ? data.user.me : data.friend + "</a>"); buildHTML.push(“”); 如果frien

我认为我没有正确使用三元运算符,因为我没有得到我想要的结果:

buildHTML.push("<a href='http://mysite/user?screen_name=" + data.friend == null ? data.user.me : data.friend + "'>" + data.friend == null ? data.user.me : data.friend + "</a>");
buildHTML.push(“”);
如果
friend
null
,则为我提供
null
,如果
friend
非null

如果
friend
null
它应该给我
me
,如果
friend
非null
,它应该给我
me


我做错了什么?

总结一下三元逻辑:

buildHTML.push("<a href='http://mysite/user?screen_name=" + (data.friend == null ? data.user.me : data.friend) + "'>" + (data.friend == null ? data.user.me : data.friend) + "</a>");
buildHTML.push(“”);

您可能还需要检查
data.friend
是==还是===to
null

将三元逻辑包装起来:

buildHTML.push("<a href='http://mysite/user?screen_name=" + (data.friend == null ? data.user.me : data.friend) + "'>" + (data.friend == null ? data.user.me : data.friend) + "</a>");
buildHTML.push(“”);

您可能还需要检查
data.friend
是==还是===to
null

尝试添加一些括号:

buildHTML.push("<a href='http://mysite/user?screen_name=" + 
(data.friend == null ? data.user.me : data.friend)
 + "'>" + 
(data.friend == null ? data.user.me : data.friend)
+ "</a>");
buildHTML.push(“”);

尝试添加一些括号:

buildHTML.push("<a href='http://mysite/user?screen_name=" + 
(data.friend == null ? data.user.me : data.friend)
 + "'>" + 
(data.friend == null ? data.user.me : data.friend)
+ "</a>");
buildHTML.push(“”);

需要注意的几件事可能会对您有所帮助:

  • 在比较JavaScript中的项目时,使用===而不是==
  • data.friend可能未定义,这与null不同,您可能需要执行不同的检查

    • 需要注意的几件事可能会对您有所帮助:

      • 在比较JavaScript中的项目时,使用===而不是==
      • data.friend可能未定义,这与null不同,您可能需要执行不同的检查

      你为什么要做两次?将其存储到变量中,并进行一次逻辑检查。三元运算符的“操作顺序”优先级极低。当与其他操作符(如+)组合时,几乎总是需要将它们括在括号中。为什么要做两次?将其存储到变量中,并进行一次逻辑检查。三元运算符的“操作顺序”优先级极低。当与其他运算符(如)组合时,几乎总是需要将它们括在括号中+