Каков был бы сокращенный эквивалент следующего?Javascript сокращенное заявление if
if (windowwidth >= 960){
widthofwindow = 1;
} else {
widthofwindow = 0;
}
Каков был бы сокращенный эквивалент следующего?Javascript сокращенное заявление if
if (windowwidth >= 960){
widthofwindow = 1;
} else {
widthofwindow = 0;
}
Вы можете использовать тройной оператор:
widthofwindow = windowwidth >= 960 ? 1 : 0
Вы можете прочитать, что, как
condition ? value_if_true : value_if_false
Точнее: условный оператор (единственный тернарный оператор в JS). –
+1 - вытеснение предложения 'widthofwindow = Number (windowwidth> = 960);' (ETA: 12 секунд слишком поздно). Возможно, вы хотите исправить имя целевой цели в 'widthofwindow'. – JimmiTh
Ternary exps - это путь, но я обычно пытаюсь либо обернуть условие в parens (предпочтительнее), либо отбросить пробелы в этом состоянии, в противном случае будет легко неверно прочитать утверждение. (Также, 'widthofwindow =') – AdamKG
windowwidth = windowwidth >= 960 ? 1 : 0;
Вы можете использовать некоторые хаки (помимо тройном оператора), если вам нравится
widthofwindow = Number(windowwidth >= 960);
При использовании
Number(value)
выражения преобразования типа (значение => Номер) выполняется и Int этого случая, если этоwindowwidth >= 960
true
она отлита на 1 и 0 в противном случае. Обратите внимание, что не используется ключевое словоnew
, так как вы не хотите создавать объект - вы просто хотите, чтобы один тип был другим.Более подробную информацию можно найти здесь: Number (MDN)
или
widthofwindow = (windowwidth >= 960) * 1;
Этот случай (а также
+(value)
) является примером другого подхода к типу преобразования в JS. Когда вы умножаете (или используете знак унарного +), ваше логическое значение также становитсяNumber
с соответствующим значением.Вы можете нашли информацию здесь: JavaScript Garden
Или просто' widthofwindow = + (windowwidth> = 960) '. –
@FelixKling: забыли об этом :) –
О, и даже если это очевидно для нас, возможно, вам следует дать краткое объяснение, почему/как это работает. Но вы все равно получили мой +1;) –
result = (condition) ? 'something' : 'somethingelse';
http://javascript.about.com/od/byexample/a/ternary-example.htm
Глядя "Javascript стенографии, если оператор" вызывает множество релевантных результатов, первый из которых является HTTP: // StackOverflow. com/questions/9864634/shorthand-if-else-statement-javascript –