O que é "?: "notation in JavaScript?

Encontrei este pedaço de código nas minhas viagens para investigar o JSON.
var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
Estou a ver cada vez mais a notação de ? e :. Nem sei como se chama procurar! Alguém me pode indicar um bom recurso para isto? já agora, sei o que significa.

Author: user2864740, 2010-07-24

4 answers

Chama-se um operador condicional (ternário) . É essencialmente um " se " condensado.

Então isto:

var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;

... é o mesmo que isto:

var array;
if (typeof objArray != 'object') {
    array = JSON.parse(objArray);
} else {
    array = objArray;
}
 24
Author: Matt Huggins, 2014-05-22 00:06:38
É o operador ternário condicional. -- basicamente,
if (condition) {
   a = 4;
}
else {
   a = 5;
}

Torna-se

a = condition ? 4 : 5;
 12
Author: Alexander Gessler, 2010-07-23 22:02:21
Isso chama-se operador condicional.:
condition ? expr1 : expr2

Se condition For true, o operador devolve o valor de expr1; caso contrário, devolve o valor de expr2.

 10
Author: Gumbo, 2010-07-23 22:01:45
Lê assim:
result = (condition) ? (true value) : (false value);
Coloque o que quiser nos três operadores.

Tantos o compararam com um se.. Então estrutura, assim é.

 2
Author: BerggreenDK, 2010-07-24 00:22:12