Что происходит в этом сокращенном операторе?
Я пытаюсь поправиться в стенографии. Может кто-нибудь помочь прояснить ниже?
(obj.getValue("title")) ? message += "\ntitle: " + obj.getValue("title") : null;
Если у obj есть заголовок, добавьте его в сообщение, иначе он будет нулевым?
2 ответа
Как указано в комментариях, это троичный оператор. Это очень странное использование одного, так как на самом деле он не использует часть оператора else для чего-то полезного, и было бы более четко написано как:
if (obj.getValue("title")) {
message += "\ntitle: " + obj.getValue("title");
}
Пока obj.getValue("title")
" правда", это будет изменить message
,
Если это в вашем коде, воспользуйтесь возможностью, чтобы сделать код более понятным.
Вы правы, если у obj есть заголовок, затем добавьте его в сообщение, но чтобы быть строгим, вы должны знать это значение obj.getValue("title")
не должно быть ложным (0, null, undefined, '', NaN, false
) пройти условие.
Также вы можете использовать здесь другой вариант
obj.getValue("title") && (message += "\ntitle: " + obj.getValue("title"));
Если obj.getValue("title")
имеет истинное значение, чем будет выполняться операция во вторых скобках. Также вы можете создать ссылку на obj.getValue("title")
,
var title = obj.getValue("title");
title && (message += "\ntitle: " + title);
Лучше в этом случае вызывать метод getValue
выполняется только один раз.
стенография +=
предвосхищает значение obj.getValue("title")
в message
,