Javascript 为什么这个条件表达式需要括号
对 var notice = "She is" + present ? "" : "n't" + " here."; 在摆弄之后,我注意到只有前面的那根弦在弄乱它。但我无法解释,如果我提醒大家注意,当然,我的陈述是真实的或虚假的,那么为什么第一个例子是空白的,而第二个例子效果很好。当你写道: var notice = "She is" + (present ? "" : "n't") + " here."; present ? "" : "n't" +因此解析器将其视为:Javascript 为什么这个条件表达式需要括号,javascript,string,conditional-statements,Javascript,String,Conditional Statements,对 var notice = "She is" + present ? "" : "n't" + " here."; 在摆弄之后,我注意到只有前面的那根弦在弄乱它。但我无法解释,如果我提醒大家注意,当然,我的陈述是真实的或虚假的,那么为什么第一个例子是空白的,而第二个例子效果很好。当你写道: var notice = "She is" + (present ? "" : "n't") + " here."; present ? "" : "n't" +因此解析器将其视为: var notice
var notice = "She is" + present ? "" : "n't" + " here.";
表达式She is+present返回true,与present的值无关,因为它被转换为表达式中的字符串并应用于任何非空字符串,因此完整表达式返回true,即条件操作的true端
当分组运算符应用于条件部分时,它优先于所有内容,因此首先计算条件:
var notice = ("She is" + present) ? "" : ("n't" + " here.");
也许是个线索。来吧,人们,真的,如果是这样的话。那么,它不会以真理的形式回来,因为她+现在,假设我们设置为1,她会是1,哦。所以我认为这算不了什么。但是这里的+怎么办?非常感谢。对不起,我是新来的。提到罗布关于优先权的链接,当你省略括号时,你实际上得到了她是+在场吗不在这儿。。不管现在是什么情况,如果这是真的,那么其他的就不在这里了。所以无论你现在有什么,你都会得到。别难过,我不得不为此挠头,我花了很多时间在JavaScript上。
var notice = "She is" + (present ? "" : "n't") + " here.";