Пожалуйста, объясните мне этот код! (Яваскрипт)
У меня есть переменная под названием "Чат", определяемая следующим образом:
var chatRoom = { 'all' : [] };
Здесь я предполагаю, что чат-это объект/массив JSON.
Теперь вот еще один фрагмент кода
if (chatRoom[to]) { chatRoom[to].push(newChatEl); } else chatRoom[to] = [ newChatEl ];
Здесь "to" содержит некоторое строковое значение.
Я новичок в программировании и немного разбираюсь в Java, но почти ничего не знаю о JavaScript. То, что я узнал в Java, заключается в том, что мы должны поместить оператор, который приводит к логическому значению в скобках после ключевого слова "if". Но вот в JavaScript "chatroom[to]" не выглядит как логическое значение true/false.
1. Как бы вы интерпретировали термин "чат [Гарри]" здесь? Хранится ли строка "Harry" в json-объекте chatRoom как chatRoom={'all':[Harry]}? Если нам нужно обратиться к Гарри, как мы это сделаем: chatRoom.all[0] или chatRoom[0]?
2.Что вы подразумеваете под чатом[Harry]. push(newChatEl)? Здесь чат-это не массив, а объект JSON. Мы добавляем новый узел в Гарри в чате, который содержит newChatEl? Для справки, newChatEl - это куча Html-кодов (некоторые див. и промежуток создаются элементы и их ссылка передается в newChatEl). Таким образом, newChatEl даже не является строковым объектом. А если "newChatEl" - это не строка, то как ее можно протолкнуть в чат [Гарри]?
3. В еще часть кода, создаем ли мы массив и передаем в него newChatEl в качестве его первого элемента?
Извините, если вопросы глупые, но мне нужно понять это полностью.
Спасибо!
Что я уже пробовал:
Нужно какое-то объяснение, уже объясненное в вопросе.
W∴ Balboos, GHB
Вы никогда не используете объект в качестве субъекта логического выражения, за исключением, возможно, определения того, был ли он определен или нет.
Подумайте: каково содержание чата? Какую часть его следует использовать для вашего теста IF? Вы не уточнили.
Annu Ranjan
Спасибо за ответ Balboos! Я предполагаю, что он был закодирован здесь, чтобы определить, существует ли этот элемент или нет. Но опять же, разве мы не должны использовать его как "чат.all[Harry]" вместо "чат[Harry]"?