字符串连接在javascript中不起作用
我正在尝试这个代码字符串连接在javascript中不起作用,javascript,string,ternary-operator,string-concatenation,Javascript,String,Ternary Operator,String Concatenation,我正在尝试这个代码 <script> var x=1; var temp = '{"value":'+ (x==1)?1:0 +'}'; console.log(temp); </script> var x=1; var temp='{“value”:'+(x==1)?1:0+'}'; 控制台日志(temp); 并期望给出这样的输出 {“值”:1} 但这只是安慰1 为什么不是整个obj。一串 谁能告诉我怎么了吗?在缺少的括号旁边 var te
<script>
var x=1;
var temp = '{"value":'+ (x==1)?1:0 +'}';
console.log(temp);
</script>
var x=1;
var temp='{“value”:'+(x==1)?1:0+'}';
控制台日志(temp);
并期望给出这样的输出
{“值”:1}
但这只是安慰1
为什么不是整个obj。一串
谁能告诉我怎么了吗?在缺少的括号旁边
var temp = '{"value":'+ (x == 1 ? 1 : 0) +'}';
// ^^^^^^^^^^^^^^^^
要使a高于加号,可以使用另一种方法,将a用于具有ES6的对象
这将生成一个对象,而不是一个字符串,后者更适合生成。要使用字符串化值,请以所需格式创建字符串
var x=1,
值=x==1?1 : 0,
温度={value};
log(JSON.stringify(temp))代码>您的三元语句后面紧跟着另一个它不懂如何读取的+
。它显示为“0+”[…无]不完整
要单独计算该语句以便在连接字符串中使用,您需要在另一个语句中计算该语句,或者将其括在括号中
var x=1;
var temp='{“value”:'+(x==1?1:0)+'}';
console.log(temp)
如下更改表达式
var temp='{“value”:'+(x==1?1:0)+'}' (圆括号)
@NiettheDarkAbsol您能更详细地告诉我一点吗x==1?1:0
->(x==1?1:0)
也许我希望得到这样的输出{“值”:1},而在现代实现中,您可以用圆括号克服上面注释中所示的运算符优先级,您不再需要连接,因为模板文本可用<代码>var temp=`{“value”:${(x==1)?1:0}`代码>