Что значат символы “?” и “:” в языке сценариев JavaScript

Кто-то знает, что он это значит в языке сценариев JavaScript? специально ? и :

n = self.isUploadable ? fileStack.length : numFiles,
45
задан 06.01.2016, 15:35
4 ответа

Условный (тройной) оператор

Что является более короткой формой структуры "if else".

Например

var result = 6%2==0 ? "Even" : "Odd";

Это то же самое что

if(6%2==0){
     result = "Even";
}
else{
     result = "Odd";
}

из-за которого в твоем примере

if(self.isUploadable){
    n = fileStack.length;
}
else{
     n = numFiles;
}
39
ответ дан 24.11.2019, 15:01
  • 1
    Это не полностью эквивалент: результат <condicion> ? <expresion-verdadera> : <expresion-falsa> - expresi и # 243; n в то время как if .. else просто - statement – Carlos Muñoz 06.01.2016, 17:31
  • 2
    Это не способ укорачивать if-else, потому что в отличие от этого тройной оператор возвращает всегда стоимость из-за того, что - выражение. Ранит, что есть люди, запутанные sobrevoto этого, пальто, которое я принимаю публикацию. –  30.01.2016, 13:13
  • 3
    Всегда забывают меня, как его зовут этот оператор, но очень и #250; til, в python и в c ++ они используются формы f и # 225; cil, хороший, в python он в и # 250; n м и # 225; s f и # 225; cil. – SalahAdDin 14.03.2016, 08:30

Этот sintáxis - языка сценариев JavaScript и соответствует тройному оператору:

условие? expresion1: expresion2

Примеры:

> var mayor = 4 > 5 ? "Si" : "No";
> mayor
"No"
> var mayor = 100000 > 0 ? true : false;
> mayor
true
> var mayor = array1.length > array2.length ? hacerAlgo() : hacerOtraCosa();

Имей в виду, что в последнем примере так hacerAlgo() и hacerOtraCosa() они были бы должны возвращать что-то, что имело смысл бы согласно контексту, под которым ты работаешь.

Ввиду того, что тройные операторы - выражения в языке сценариев JavaScript, возможно использовать их, таким образом, например:

> var masculino = false;
> var saludo = "Hola " + (masculino ? "chico" : "chica") + ", ¿cómo estás?";
> saludo
"Hola chica, ¿cómo estás?"

Ваша противоположная сторона используя решение if {} else {} он был бы:

var masculino = false;
var saludo = "Hola ";
if (masculino) {
    saludo += "chico";
} else {
    saludo += "chica";
}
saludo += ", ¿cómo estás?";

Если, ты уберегаешься какие-то линии кода.

Repondiendo твои вопросы, ? просто оцени условие, которое в левую сторону и : это просто разделитель между выражениями, которые оценены согласно результату условия.

Замечание:

Не запутывать тройной оператор с оператором Элвисом.

29
ответ дан 24.11.2019, 15:01
  • 1
    No confundir operador ternario con el operador Elvis. Оператор Элвис не существует в языке сценариев JavaScript, и #191; правда? – Peter Olson 07.01.2016, 03:17
  • 2
    @PeterOlson так он, не существует в языке сценариев JavaScript. Он больше, чем совсем не замечание для людей с background в PHP, например, которые могут быть приученными использовать это, так как sint и # 225; xis он сходный используя ? и : – César 07.01.2016, 03:21

Это if else возможно использовать так в javascript как в PHP

$variable = ($var_1 == $var_2 )?valor si es cierto:valor si es falso;
-1
ответ дан 24.11.2019, 15:01

Если бы встретился случай, чего isUploadable true только, когда fileStack будет содержать данные, тогда это tambiГ©n servirГ - Напоминает

n = fileStack.length || numFiles;

, что:

  • null
  • undefined
  • false
  • 0
  • '' (string empty)

false для языка сценариев JavaScript.

4
ответ дан 24.11.2019, 15:01

Теги

Похожие вопросы