2014-12-12 3 views
-1

Я пытаюсь понять код другого разработчика, который любит использовать условные операторы для хранения переменных. Это очень аккуратный способ, но я не уверен, что означает ? and : в нижеприведенном сценарии.Использование операторов сравнения javascript с переменными

var empId = getCurrentUserId(); //getCurrentUserId function returns an id. 
var thisUserName = (empId == '' ? getCurrentUserName() : empId.toUpperCase()); //getCurrentUserName returns a user name. 

Также является ли это достаточным способом хранения переменных, выступающих против инструкции if? Любая помощь будет оценена.

+0

ID является числовым? if true, почему вы пишете прописные буквы? –

+0

@AlessandroMarchisio Почему empId должен быть числовым? –

+0

Это верхний регистр, потому что символы не всегда согласованы. empId является числовым, вот как мы катимся! – habibg

ответ

1

... ? ... : ... является ternary operator. Он существует в a lot of languages. Он используется так:

variable = test ? assignIfTrue : assignIfFalse; 

В вашем случае, thisUserName будет присвоен getCurrentUserName() если empId пуст, и с empId.ToUpperCase(), если нет.

+0

Круто спасибо за быстрый ответ! Это имеет смысл. Можем ли мы добавить несколько условий, таких как - '(условия)? assignIfTrue: assignIfFalse; ' – habibg

+0

Да. '(x == y && (z! = t || z == v))? true: false' является правильным. Позаботьтесь о том, чтобы положить парекеты, поскольку тройной оператор обычно имеет низкий приоритет перед другими операторами. –

+0

Gotcha! Это очень полезно. – habibg

Смежные вопросы