var active=0;
var online=1;
if([online == 1][active === 0])
{
active=1;
alert('принято')
}
else {
active=0;alert('отказ');
}
Условия соблюдены, но срабатывает else. Почему?
Квадратными скобками обозначается литерал массива
Таким образом внутри if
происходит следующее:
создается массив с одним элементом: [online == 1]
, так как online
действительно равен 1
- результат сравнения true
, поэтому эту часть можно заменить на [true]
.
идет попытка получения у указанного выше массива свойства, имя свойства определяется так: active === 0
, результат true
. При использовании скобочной нотации имя свойства переводится в строку. Таким образом у массива получается свойство с именем true
. Так как такого свойства у массива нет, результат - undefined.
undefined - в условиях эквивалентно false
, поэтому выполняется ветка `else.
для избегания подобных ошибок не нужно использовать литерал массива, а для объединения проверок необходимо использовать логические операторы
var active = 0;
var online = 1;
if (online == 1 && active === 0) {
active = 1;
console.log('принято')
} else {
active = 0;
console.log('отказ');
}
Очевидно у вас ошибка в if. Перепишите вот так:
var active=0;
var online=1;
if(online === 1 && active === 0)
{
active=1;
alert('принято')
}
else {
active=0;alert('отказ');
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Подскажите кто какие библиотеки знает для голосового заполнения HTML форм или у кого какие идеи и мысли есть насчет этогоСлышал что x-webkit-speech...
Делаю приложение на React JSНепонятная проблема с инициализацией начального состояния
Если отправлять запрос к API через Postman, то он он рядом с кодом выводит статус-текст ответаЕсли же делать запрос из кода JS, то я не могу получить...