Я не понимаю, как &&, || и ! работы ... как с BOOLS и другими типами данных. Как вы их используете?
Логические операторы в JavaScript - как вы их используете?
Ответы (2)
Все значения в JavaScript, либо «truthy» или «falsy».
a && bпринимает значение первого операнда falsya || bпринимает значение первого операнда truthy
Оба оператора не будет оценивать любые операнды после одного возврата.
Если все операнды не совпадают, он будет оценивать до последнего.
!aпринимает значениеtrueеслиaявляется falsy иfalseеслиaявляется truthy.
Все значения являются truthy за исключением следующих, которые falsy:
false+0-0NaN""nullundefineddocument.all
person
SLaks
schedule
26.12.2010
Необходимо указать все <я> значение я> правдив ..., так как есть
undefined этого значение, но есть также переменная undefined, которая имеет это значение по умолчанию. Также NaN не равно ни к чему, даже самому себе.
- person Ivo Wetzel; 27.12.2010
@Ivo: 1: Фиксированный. 2: Это не имеет значения;
!NaN является true, так NaN является falsy.
- person SLaks; 27.12.2010
Тем не менее NaN == NaN является ложным. Так что по-прежнему особый случай из приведенного выше списка можно было бы подумать, что NaN работает как любой другой falsy значение.
- person Ivo Wetzel; 27.12.2010
@Ivo: SLaks только листинг falsy значения в JavaScript. Он что-нибудь еще о
NaN или любой из других значений не претендую.
- person Sasha Chedygov; 27.12.2010
Я знаю, что это старая история, но
document.all?
- person Pointy; 22.08.2018
Если вы хотите проверить, что и EM> из двух условий truthy затем использовать &&:
if (isX && isY)
{
// Do something.
}
Если вы хотите проверить, что один или оба EM> из двух условий truthy затем использовать ||:
if (isX || isY)
{
// Do something.
}
В ! инвертирует логическое значение (значение truthy становится ложным, и наоборот).
person
Mark Byers
schedule
26.12.2010
Как насчет
document.write("Cat"||"Dog")?
- person DarkLightA; 27.12.2010
@DarkLightA: Я хотел бы предложить, что вы не писать код, как это! Это вызывает неявные преобразования, и это запутает всех.
- person Mark Byers; 27.12.2010
Это не должно никого смущать. Короткое замыкание было общий идиом в JavaScript, так как около 5 лет назад. Крокфорд вызовы
|| оператора по умолчанию так "Cat" || "Dog" следует читать cat, defaults to dog. Лично я прочитал его как cat, otherwise dog.
- person slebetman; 27.12.2010