什么是?:(问号和冒号运算符。条件或“三元”)操作符,我如何使用它?


当前回答

如果你在javascript中有一个条件检查实例函数。三元算符易于使用。只需要一行就可以实现。 例:

    private module : string ='';
    private page:boolean = false;
    async mounted(){
     if(this.module=== 'Main')
    {
    this.page = true;}
    else{
    this.page = false;
    }
}

只有一个条件的函数可以写成这样。

this.page = this.module=== 'Main' ?true:false;

条件?if True: False

其他回答

我想在已经给出的答案上加上一些。

如果你遇到(或想要使用)三元的情况,如'显示一个变量,如果它被设置,否则…',你可以让它更短,没有三元。


而不是:

var welcomeMessage  = 'Hello ' + (username ? username : 'guest');

你可以使用:

var welcomeMessage  = 'Hello ' + (username || 'guest');

这是javascript相当于PHP的速记三元操作符?:

甚至:

var welcomeMessage  = 'Hello ' + (username || something || maybethis || 'guest');

它对变量求值,如果它为false或未设置,则继续执行下一个。

利用三元运算符,编写程序打印偶数,如果数字是偶数,打印奇数,如果数字是奇数。

设a = 13; 令b = a%2!= = 0 ?“是奇数”:“是偶数”; // let b = a%2==0 ?“是偶数”:“是奇数”; console.log (a + " " +);

输出:13为奇数

这可能不是最优雅的方式。但是对于不熟悉三元运算符的人来说,这可能是有用的。我个人倾向于使用一行程序回退,而不是使用条件块。

  // var firstName = 'John'; // Undefined
  var lastName = 'Doe';

  // if lastName or firstName is undefined, false, null or empty => fallback to empty string
  lastName = lastName || '';
  firstName = firstName || '';

  var displayName = '';

  // if lastName (or firstName) is undefined, false, null or empty
  // displayName equals 'John' OR 'Doe'

  // if lastName and firstName are not empty
  // a space is inserted between the names
  displayName = (!lastName || !firstName) ? firstName + lastName : firstName + ' ' + lastName;


  // if display name is undefined, false, null or empty => fallback to 'Unnamed'
  displayName = displayName || 'Unnamed';

  console.log(displayName);

三元运算符

z = (x == y ? 1 : 2);

等于

if (x == y)
    z = 1;
else
    z = 2;

当然,除了,它更短。

 (sunday == 'True') ? sun="<span class='label label-success'>S</span>" : sun="<span class='label label-danger'>S</span>";

 sun = "<span class='label " + ((sunday === 'True' ? 'label-success' : 'label-danger') + "'>S</span>"