什么是“?”:"意思是

What does "? :" mean?

本文关键字:quot 意思是 什么      更新时间:2023-09-26

我有一个通用的JS问题,我甚至不知道该怎么说。

在什么情况下使用以下代码结构?它是什么意思(或有什么用)?这种做法叫什么?

x1 = x2 ? x3 : x4;

你能提供参考资料、例子和可能性吗?

  if(x>10)
  {
      y=10;
  }
  else
  {
      y=9;
  }

可以写成

  (x>10) ? y=10 : y=9;

我想现在你已经理解了

如果x2为false,则x1=x4如果x2为真,则x1=x3

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator

在扩展代码中显示:

if(x2){
    x1 = x3;
}
else{
    x1 = x4
}

如果您熟悉三元运算符(如果不熟悉,请查找),那么这可能更有意义。

x1 = (x2 ? x3 : x4);

这是一个ternary operator

如果X1 = X2,则X1取值X3,否则X1取值X4

?:是"三元运算符";这需要三个论点。第一个参数是一个测试,如果测试为true,第二个参数是返回值,而如果测试为false,第三个参数则是返回值。

因此1 === 1 ? 'foo' : 'bar'将返回"foo",而1 === 0 ? 'foo' : 'bar'将返回"bar"。它总是可以用if.else结构来替换,但考虑到它的简短形式,它可以保持代码的整洁。

如果测试值和返回值的形式非常复杂,我会使用更"传统"的If.else结构。

它被称为三元运算符。这是if else的简写。它被用于许多高级编程语言中。

x1 = x2 ? x3 : x4;

上述代码可以扩展为:

x1 = undefined;
if (x2) {
    x1 = x3;
} else {
    x1 = x4;
}