2013-08-07 2 views
1

Каков был бы сокращенный эквивалент следующего?Javascript сокращенное заявление if

if (windowwidth >= 960){ 
     widthofwindow = 1; 
    } else { 
     widthofwindow = 0; 
    } 
+1

Глядя "Javascript стенографии, если оператор" вызывает множество релевантных результатов, первый из которых является HTTP: // StackOverflow. com/questions/9864634/shorthand-if-else-statement-javascript –

ответ

11

Вы можете использовать тройной оператор:

widthofwindow = windowwidth >= 960 ? 1 : 0 

Вы можете прочитать, что, как

condition ? value_if_true : value_if_false 
+0

Точнее: условный оператор (единственный тернарный оператор в JS). –

+0

+1 - вытеснение предложения 'widthofwindow = Number (windowwidth> = 960);' (ETA: 12 секунд слишком поздно). Возможно, вы хотите исправить имя целевой цели в 'widthofwindow'. – JimmiTh

+0

Ternary exps - это путь, но я обычно пытаюсь либо обернуть условие в parens (предпочтительнее), либо отбросить пробелы в этом состоянии, в противном случае будет легко неверно прочитать утверждение. (Также, 'widthofwindow =') – AdamKG

0
windowwidth = windowwidth >= 960 ? 1 : 0; 
4

Вы можете использовать некоторые хаки (помимо тройном оператора), если вам нравится

widthofwindow = Number(windowwidth >= 960); 

При использовании Number(value) выражения преобразования типа (значение => Номер) выполняется и Int этого случая, если это windowwidth >= 960true она отлита на 1 и 0 в противном случае. Обратите внимание, что не используется ключевое слово new, так как вы не хотите создавать объект - вы просто хотите, чтобы один тип был другим.

Более подробную информацию можно найти здесь: Number (MDN)

или

widthofwindow = (windowwidth >= 960) * 1; 

Этот случай (а также +(value)) является примером другого подхода к типу преобразования в JS. Когда вы умножаете (или используете знак унарного +), ваше логическое значение также становится Number с соответствующим значением.

Вы можете нашли информацию здесь: JavaScript Garden

+1

Или просто' widthofwindow = + (windowwidth> = 960) '. –

+0

@FelixKling: забыли об этом :) –

+0

О, и даже если это очевидно для нас, возможно, вам следует дать краткое объяснение, почему/как это работает. Но вы все равно получили мой +1;) –

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