Anonymous
Почти всё можно написать красиво. Без копипасты и читабельно.
Анатолий
Баланс между экономией кода и читабельностью не запишешь никакими условиями )
Ruslan
Anonymous
Экономия кода? Лол
Sheldhur
Sheldhur
придет ньюфаг и не поймет, чё там у тебя написано
Sheldhur
поэтому надо писать a = a + 1
Ruslan
Sheldhur
чтобы наверняка каждый понял
Анатолий
Анатолий
Анатолий
А сравнение работает совершенно не так, как в других языках
Анатолий
ща, найду копипасту
Ruslan
Ruslan
Анатолий
Anonymous
Ща накинутся.
Анатолий
— null == null, undefined == undefined, null == undefined
— при сравнении строки с числом, строка приводится к числу
— при сравнении чего угодно с булевым значением, булево значение приводится к числу
Anonymous
Я забыл, когда мне вообще требовался инкремент.
Анатолий
Нельзя ожидать от джаваскрипта приведения сравниваемых сущностей к булеву типу, поэтому предлагается приводить их к самому
Ruslan
Анатолий
Anonymous
Анатолий
А иф, если я не ошибаюсь, сравнивает условие с true
Anonymous
Лол.
Anonymous
Сравнение с булем — это не приведение к нему. Сам же написал.
Anonymous
Чччёрт. =))))
Анатолий
Anonymous
Здесь рекурсия непонимания.
mr. Klaes
if !1 0
Анатолий
Анатолий
Если нет - то пусть автор опроса напишет, что он имел в виду :)
Анатолий
Там у него ещё && стоит, особенности которого тоже нужно учитывать
Anonymous
Просто пиздец.
Ruslan
Сравнение с булем - это приведение к булю а потом сравнение
Анатолий
Анатолий
Анатолий
При сравнении чего угодно с булевым значением, булево значение приводится к числу
Ruslan
Anonymous
Приведение к булеву — это не сравнение с булевым.
Anonymous
Анатолий
И что? =)
Это ответ Руслану, ничего )
Anonymous
CherryTea
Здесь рекурсия непонимания.
Анатолий
Ruslan
Анатолий
Здесь рекурсия непонимания.
И вообще вопрос поставлен расплывчато. Единственное что можно на него ответить - по ситуации, да :) Я смотрю, этот вариант и ведёт
Дима
Анатолий
Если учитывать вообще всё, то тогда нужно вспомнить, что ! приводит операнд к bool прежде чем вычислить выражение, а == сначала сравнивает, а затем приводит к bool результат
Анатолий
А ещё у него &&
Anonymous
И if (myVar) делает то же самое, что if(!!myVar === true)?
Anonymous
Первое — неявно, второе — явно.
Anonymous
Абсолютно безопасно.
Anonymous
if (var1 && var2) ...
if ((!!var1 === true) && (!!var2 === true)) ...
Anonymous
Тоже идентично.
Анатолий
Анатолий
Предлагалось просто двойным отрицанием к булю приводить
Elena
Жесточина ))
Anonymous
Дима
Anonymous
Anonymous
А то вдруг двойное отрицание не так к булеву приведёт.
Ruslan
Дима
Anonymous
Я предлагаю привести код, где if (myVar) небезопасно.
Анатолий
Мина зарыта не там, где вы её ищете :)
Ruslan
Аналогично
Ну а разница в чём? код отработает также
Анатолий
Дима
Дима
Твой вариант так же аффектит 0, null и прочие falsy
Anonymous