Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.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和Java中的(串联)vs==_Javascript - Fatal编程技术网

+的运算符优先级;Javascript和Java中的(串联)vs==

+的运算符优先级;Javascript和Java中的(串联)vs==,javascript,Javascript,为什么输出是: let valueOne = 3; let valueTwo = "3"; if(valueOne==valueTwo) {console.log("same")} else {console.log("different")} console.log("valueOne==valueTwo: " + valueOne==valueTwo); 它甚至不打印字符串valueOne==valueTwo:。 然而,当添加额外的括号时,它将输出预期的结果 sa

为什么输出是:

let valueOne = 3;
let valueTwo = "3";
if(valueOne==valueTwo)
    {console.log("same")}
else
    {console.log("different")}

    console.log("valueOne==valueTwo: " + valueOne==valueTwo);
它甚至不打印字符串
valueOne==valueTwo:
。 然而,当添加额外的括号时,它将输出预期的结果

same
false
输出:

console.log("valueOne==valueTwo: " + (valueOne==valueTwo));   
在javascript中,
==
运算符的优先级似乎低于串联, 这与Java不同:

有人知道这里的设计问题吗


谢谢

将字符串和数字相加,并将其与第二个变量进行比较。使用字符串模板可以解决这个问题

让valueOne=3;
让valueTwo=“3”;
如果(valueOne==valueTwo)
{console.log(“相同”)}
其他的
{console.log(“不同”)}

log(`valueOne==valueTwo:${valueOne==valueTwo}`)JavaScript和Java是两种完全不同的语言,在所有的语言中都不一样。实际的问题是什么?您已经正确地解释了为什么代码没有按照预期的方式运行,以及如何修复它。@RobinZigmond“有人知道这里的设计问题吗?”@RobinZigmond他们想知道,为什么JS中的运算符优先级是按这种方式设计的。实际上,在检查了指向OP中给出的Java运算符优先级的链接之后,在Java中,
+
似乎也高于
==
,这意味着这个问题是基于误解。
same
valueOne==valueTwo: true