Условные операторы в javascript

132
06 декабря 2019, 01:30

Изучаю JS, наткнулся в книге на такой код:

var handlers = this._eventHandlers && this._eventHandlers[eventName];
if(!handlers) return;

Я думал что объявление нескольких переменных в js делается просто через запятую, а здесь что имеется ввиду? И во второй строчке, если я правильно понял имеется ввиду: if (handlers = false), return false. Так? Или что-то другое подразумевается? Спасибо.

Answer 1

Я думал что объявление нескольких переменных в js делается просто через запятую

делается, но у вас здесь определена только одна переменная - handlers. Ее значение определяется логическим выражением (логическое И), которое в свою очередь проверяет наличие объекта _eventHandlers и его свойства с именем eventName. Если оба не пусты и существуют получим результат true.

если я правильно понял имеется ввиду:

if (handlers = false), 

в таком виде у вас handlers примет значение false. Оператор сравненеия это двойное равенство ==.

return false

не додумываете то, чего нет. Не было там false, вернется значение undefined.

Answer 2

Первая строка толкуется так Переменной присваивается true, если все условия соблюдаются и false если хоть одно условие не соблюдается и получаем

var s = true && false // s = false
var s = true && true // s = true
READ ALSO
Установка парсера через Yarn

Установка парсера через Yarn

Существует парсер, который устанавливается через пакетный менеджер yarnУстановка длится второй день

115
Сбрасывается настройка MySQL

Сбрасывается настройка MySQL

В MySQL в "Переменных" вручную изменяю настройку sql mode, удаляя оттуда ONLY_FULL_GROUP_BY, сохраняюДалее все работает как нужно

142
Как правильно хранить изменения в полях таблицы mysql?

Как правильно хранить изменения в полях таблицы mysql?

Допустим есть таблица products с полями id,name,price,created_at,updated_atНужно мониторить как изменялась к примеру цена товара

133
GROUP BY сортировать время

GROUP BY сортировать время

как с помощью GROUP BY сортировать время с 15 мин разницой то-есть есть столбцы

135