2015-01-22 5 views
0

У меня есть эта строка кода в JS для передачи платежей, но я не уверен, что она делает, поскольку я никогда не видел какой-либо из этого синтаксического сахара раньше.Что такое null? в этой строке JavaScript

var fund = response.card != null ? response.card[0] : response.bank_acct[0]; 
+0

, что "синтаксический сахар" вы имеете в виду ? – Pointy

+1

http://en.wikipedia.org/wiki/%3F: – Barmar

+0

Это тот же «синтаксический сахар», что и в C, PHP, Perl и ряде других языков. – Barmar

ответ

5

Это условный оператор. Вместо того, чтобы писать это:

var fund; 
if(response.card != null) 
{ 
    fund = response.card[0] 
} 
else 
{ 
    fund = response.bank_acct[0]; 
} 

вы могли бы написать это:

var fund = response.card != null ? response.card[0] : response.bank_acct[0]; 
+0

@ Downvoter не могли бы вы объяснить мне, где ответ неправильный? Заранее спасибо. – Christos

+0

Ничего плохого в вашем ответе как таковом, но я сомневаюсь, что использование SO как ресурса Q & A для людей, которые не удосужились изучить базовый синтаксис языка. Вы также могли бы указать ему на авторитетные страницы о '?' И/или дать ему предложения о том, как найти такие ресурсы самостоятельно, поэтому ему не нужно публиковать их в SO каждый раз, когда он видит синтаксическую конструкцию, которую он делает не знаю и/или не прокомментировал свою долгую историю на других языках программирования и/или прокомментировал, почему одна форма может быть предпочтительнее другой в каких случаях. –

3

Он работает так же, как (and is considered shorthand for) этого условного оператора:

var fund; 
if (response.card != null) { 
    fund = response.card[0]; 
} else { 
    fund = response.bank_acct[0]; 
} 
+1

Ваши тройные равны должны быть заданиями, не так ли? – Mic

+1

Конец длинного дня. Спасибо за уловку. – Andy

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