2015-03-28 5 views

ответ

4

Я не уверен, что вы подразумеваете под «сокращением JS», но, возможно, вы ищете ternary conditional operator?

type = (type == 'a') ? 1 : 2; 
+0

это он! но я пробовал без скобки, он тоже работал, является ли скобка обязательной? –

+0

@JamesLemon: Скобки не всегда необходимы, это зависит от приоритета оператора. Учитывая количество операторов в заявлении, я лично считаю, что это делает его более ясным. – David

+0

что еще может быть оператором, кроме '=='? –

0

Вы можете использовать тройной оператор, называемый также условный оператор, рядный, если (IIF), или тройные если. В вашем примере, это будет выглядеть как показано на следующем:

type = type == 'a' ? 1 : 2; 

Больше информации в Википедии: http://en.wikipedia.org/wiki/%3F:

0

у вас есть больше возможностей, чем просто тройным, особенно с учетом того, что 1 не falsy

type = {'a': 1}[type] || 2; 
+1

Более сложный, чем тройной, без реальной выгоды. – Vitruvius

+0

@ Преимущества использования начинаются, когда у вас есть большое количество опций, т. Е. Этот ответ является очень простым поиском словаря со значением по умолчанию. –

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