JavaScript, если альтернатива [дубликат]

Мне действительно нравится переписанный API Поточной обработки от Java 1.6. Callables являются большими. Они - в основном потоки с возвращаемым значением.

9
задан Leniel Maccaferri 9 August 2012 в 04:14
поделиться

5 ответов

Это условный оператор , он эквивалентен примерно так:

if (pattern.Gotoccurance.score != null) {
  pattern.Gotoccurance.score;
} else {
  '0';
}

Но я думаю, что оператор присваивания отсутствует в опубликованном вами коде, например :

var score = pattern.Gotoccurance.score !=null ? pattern.Gotoccurance.score : '0';

Переменная score будет присвоена, если pattern.Gotoccurance.score не равно нулю:

var score;
if (pattern.Gotoccurance.score != null) {
  score = pattern.Gotoccurance.score;
} else {
  score = '0';
}

Обычный шаблон для выполнения такого рода присвоений «значения по умолчанию» в JavaScript заключается в использовании логического оператора ИЛИ ( || ):

var score = pattern.Gotoccurance.score ||  '0';

Значение pattern.Gotoccurance.score будет присвоено переменной score , только если это значение не является ложным (ложными значениями являются ложное , пустое , неопределенное , 0 , нулевое значение) строка или NaN ).

В противном случае, если это 's falsy '0' будет присвоено.

Обновление: Производительность будет эквивалентной, вы должны сосредоточиться на удобочитаемости, я пытаюсь использовать тернарный оператор для очень простых выражений, и вы также можете улучшить форматирование, разделив его на две строки, чтобы сделать его более читаемым:

var status = (age >= 18) ? "adult"
                         : "minor";

Связанный вопрос:

35
ответ дан 4 December 2019 в 06:14
поделиться

Это называется тернарный оператор.

s называется тернарным оператором.

s называется тернарным оператором.

2
ответ дан 4 December 2019 в 06:14
поделиться

Вы можете попробовать /Developer/Applications/Utilities/FileMerge.app . Это всегда хорошее начало. Также вам следует попробовать genstrings .

второй по величине среди 3 или более номеров и даже не рекомендуется. Вместо этого лучше использовать if..else

0
ответ дан 4 December 2019 в 06:14
поделиться

Отвечая на обновленный вопрос «Зачем нужно такое кодирование?»

Иногда вы можете использовать тернарный оператор для уменьшения сложности:

Например, у меня есть веб-страница, на которой необходимо проверить, что по крайней мере в два из трех конкретных текстовых полей были введены значения. Логика if / else выглядела довольно некрасиво, но тернарный оператор сделал ее однострочным, чтобы определить, сколько полей было заполнено:

var numberFilledInFields = ( (firstName.length > 0 ? 1 : 0) +
                     (lastName.length > 0 ? 1 : 0) +
                     (zipCode.length > 0 ? 1 : 0) );

if (numberFilledInFields < 2)
{
    validation = false;
    return;
}

Это решение выглядит довольно элегантным и легким для чтения, чем некоторые альтернативы.

0
ответ дан 4 December 2019 в 06:14
поделиться

Это тернарный оператор , сокращенный способ выполнения операторов if.

Если бы его переписали, он выглядел бы так:

if (pattern.Gotoccurance.score != null) {
   return pattern.Gotoccurance.score;
} else {
   return '0';
}
5
ответ дан 4 December 2019 в 06:14
поделиться
Другие вопросы по тегам:

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