Следующее применимо к любой логической переменной, но я писал небольшую функцию на javascript, которая переворачивает проверку в данном флажке, мне стало скучно, и я задумался, насколько я могу ее сжать.
Начал с:
checkbox = document.getElementById('checkbox');
checkbox.checked = (checkbox.checked ? false : true);
Затем переехал в
checkbox = document.getElementById('checkbox');
checkbox.checked = !(checkbox.checked);
А потом
document.getElementById('checkbox').checked ^= 1;
Я не мог понять логический унарный подход, например
!(document.getElementById('checkbox').checked);
Но я обнаружил, что -- работает, хотя ++ - нет (abs val?)
document.getElementById('checkbox').checked--;
Я также не уверен, поддерживает ли js (или любой другой язык, если на то пошло) некоторую неявную ссылку на переменную в левой части уравнения, например:
document.getElementById('checkbox').checked = !(left.side);
Обычно есть 1000 способов сделать одно и то же. Какие-нибудь другие изящные подходы? Существует ли «лучший» подход по какой-либо причине (или наиболее совместимый с разными языками)?
document.getElementById('checkbox').checked ^= 1;
— он креативный. - person Justin Warkentin   schedule 10.04.2013^=
- это XOR (или что это значит), им следует поискать это. Я не говорю, что он самый понятный, но разработчик должен знать их операторов. - person Paul S.   schedule 10.04.2013& 1
для проверки нечетности числа. Это просто, эффективно и действительно не загадочно. - person Justin Warkentin   schedule 10.04.2013