Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么这个条件表达式需要括号_Javascript_String_Conditional Statements - Fatal编程技术网

Javascript 为什么这个条件表达式需要括号

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."; 在摆弄之后,我注意到只有前面的那根弦在弄乱它。但我无法解释,如果我提醒大家注意,当然,我的陈述是真实的或虚假的,那么为什么第一个例子是空白的,而第二个例子效果很好。

当你写道:

var notice = "She is" + (present ? "" : "n't") + " here."; present ? "" : "n't" +因此解析器将其视为:

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.";