Ответ 1
Если вы не можете использовать else
(и это безумие), используйте switch
.
switch (table.style.width) {
case '50%':
...
break;
case '150px':
...
break;
}
Я не могу использовать else
в своем script; как я могу реализовать инструкцию if else
без использования else
?
Я пытаюсь изменить размер div:
function hideTable(){
var table = document.getElementById('PDemo');
if(table.style.width == "50%") table.style.width = "150px";
if(table.style.width == "150px") table.style.width = "50%";
}
Этот script не работает, потому что как только выполняется первый оператор if
, условие для второго оператора if
становится истинным, так что это тоже выполняется, поэтому ничего не меняется.
P.S. Это не домашнее задание. Программное обеспечение, которое я использую, допускает только однострочные операторы.
Если вы не можете использовать else
(и это безумие), используйте switch
.
switch (table.style.width) {
case '50%':
...
break;
case '150px':
...
break;
}
Тернарный оператор:
condition ? execTrue() : execFalse();
Это эквивалентно:
if (condition) {
execTrue();
}
else {
execFalse();
}
Вы можете написать if/else в 1 строке, просто не нажимайте enter...
if (condition) { execTrue(); } else { execFalse(); }
Кроме того, вы можете написать любой оператор произвольной сложности в одной строке:
if(condition1) { exec1(); } else if(condition2) { exec2(); } else { execFalse() }
РЕДАКТИРОВАТЬ: Я должен спросить: wtf вроде ужасного программного обеспечения позволяет вам писать однострочные заявления? Это какая-то форма пыток? Это просто звучит абсолютно жалко.
РЕДАКТИРОВАТЬ 2: Если у вас возникла проблема, когда выполняется второй оператор if, вы хотите наложить взаимное исключение, то есть использовать else if
вместо всего if
для каждого последующий условный
-tjw
Сохраните значение в другой переменной.
function hideTable(){
var table = document.getElementById('PDemo');
var width = table.style.width;
if(width == "50%") table.style.width = "150px";
if(width == "150px") table.style.width = "50%";
}
if(/*condition a*/){/*statements a*/}else if(/*condition b*/){/*statements b*/}else{/*statements c/*}
Только одна строка.
с замкнутым циклом для единственности.
while (!resized){
if(width == "50%") {table.style.width = "150px";resized=true;break};
if(width == "150px") table.style.width = "50%";resized=true;break};
resized=true;
}
Какое программное обеспечение вы используете?
С && оператор называется оператором короткого замыкания. Он вернет значение второго операнда на основе значения первого операнда.
Например: (объяснение: если в permArray существует разрешение профиля), загрузите профиль пользователя)
isPermitted(permArray,'profile') && loadProfile();
& & оператор полезен также для проверки нулевых объектов перед доступом к их атрибутам. Например...
var name = person && person.getName();