为什么在带有条件(三元)运算符的 javascript 中使用“=”和“===”会得到不同的结果?

LRi*_*ter 1 javascript boolean ternary-operator

我想在javascript中制作一个程序,当两个整数相等时产生“真”,而当它们不相等时产生“假”。

我试过使用“=”符号和“===”符号,但我不知道为什么程序的结果会根据我使用的符号而变化,即使不更改函数中的数字也是如此。

这段代码导致“假”,这就是我想要的:

function checkEqual(a, b) {
  return (a === b ? true : false );
}

checkEqual(1, 2);

Run Code Online (Sandbox Code Playgroud)

此代码导致“true”,这不是我想要的:

function checkEqual(a, b) {
  return (a = b ? true : false );
}

checkEqual(1, 2);
Run Code Online (Sandbox Code Playgroud)

checkEqual() 中的数字在两次尝试中都相同,但我想知道为什么第二个是“真”。

Bho*_*yar 5

您正在a用b价值分配价值。这样,a就成真了。

您要做的是检查等式运算符==。

  • = 是赋值运算符。
  • == 是等式运算符。
  • === 是严格相等运算符。

查看文档以深入了解。