Javascript 三值输出短路评估

Javascript 三值输出短路评估,javascript,Javascript,我使用短路评估来分配一些变量。我不得不在其中一些中使用三元运算符,但它的行为与我预期的不同: console.logfalse | | bar;//输出条 console.logfoo | | bar;//输出foo console.logfoo | |真的?42:bar;//为什么? 因为它被评估为 console.log(("foo" || true) ? "42" : "bar"); 首先将foo | | true作为真实值进行评估 你的括号放错地方了也许你的意思是 console.l

我使用短路评估来分配一些变量。我不得不在其中一些中使用三元运算符,但它的行为与我预期的不同:

console.logfalse | | bar;//输出条 console.logfoo | | bar;//输出foo console.logfoo | |真的?42:bar;//为什么? 因为它被评估为

console.log(("foo" || true) ? "42" : "bar");
首先将foo | | true作为真实值进行评估

你的括号放错地方了也许你的意思是

console.log("foo" || (true ? "42" : "bar"));
因为它被评估为

console.log(("foo" || true) ? "42" : "bar");
首先将foo | | true作为真实值进行评估

你的括号放错地方了也许你的意思是

console.log("foo" || (true ? "42" : "bar"));

因为foo | | | true是真实的-你需要安慰。logfoo | | true?42:巴;运算符优先…因为运算符优先。jsu使用括号表示条件部分,因为foo | | true是真实的-您需要console.logfoo | true?42:巴;运算符优先…因为运算符优先。jsu使用括号表示条件部分