Я пытаюсь загрузить изображения с помощью javascript, сначала я получаю URL-адрес изображения большого размера, и когда пользователь откроет моду, я загружу изображения большого размера.
Я пытаюсь сделать это следующим образом
try {
images
}
catch(err) {
if (err.name == "ReferenceError"){
let images = [];
let nodes = tab.childNodes[1].children;
for (let i = 0; i < nodes.length; i++) {
if (nodes[i].firstElementChild.className === "slider") {
images.push(nodes[i].firstElementChild.src)
}
}
Images:load(images)
}
}
Но не работает, каждый раз загружает изображения.
Я пытаюсь поместить эти коды внутрь этих операторов if, но ни один из них тоже не сработал, они выдали ошибку Uncaught ReferenceError: images is not defined at HTMLElement.<anonymous>
if (typeof images == 'undefined')
if (typeof images === undefined)
if (typeof images == 'undefined' || images.lenth === 0 )
есть ли способ проверить переменную изображений, не объявленную ранее?
@ raina77ow, если переменная изображений определена, я знаю, что изображения уже загружены, в противном случае я загружу изображения
Первый оператор if не вызывает ошибки
@LucaKiebel да, но второй и третий броски
вроде не лучший дизайн. Для переменной можно задать значение undefined ...
@ raina77ow есть ли какая-нибудь хорошая практика для проверки загрузки изображений?
@ HasanTıngır, да. Сохраните ссылку на узлы в объекте на основе URL-адреса и проверьте, что: { "/img/img1.png": imgDOMNode }
@akaphenom Я открыт для советов :) Я новичок в javascript
Измените let images = []; на images = []; в разделе catch, чтобы вы не создавали новую переменную, а использовали уже определенный images.
Что вы имеете в виду под загрузкой изображений с помощью javascript? вы делаете какой-то запрос ajax, который возвращает вам изображения или что? «Сначала я получаю URL-адрес изображения большого размера, и когда пользователь откроет моду, я загружу изображения большого размера». эта фраза неясна.
@GabrielePetrioli спасибо, это дало идею решить мою проблему
Все ответы ДЕЙСТВИТЕЛЬНО отвечают на ваш вопрос, но на самом деле не решают вашу проблему. Вы никогда не должны (за некоторыми исключениями) проверять, объявлена ли переменная; вместо этого вы должны проверить ценить этой переменной. И если вы хотите что-то делать при загрузке ваших изображений, просто обработайте их событие load.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Используйте следующий код:
if (typeof variable !== 'undefined') {
// variable is defined
}
let foo; typeof foo /* undefined */; let foo; // ERROR: foo has already been declaredВеликая Дхарматма верна. Проверка того, что тип переменной строго равен undefined, поможет решить вашу проблему.
if (typeof something !== 'undefined') {
// do stuff when variable was declared
} else {
// do stuff when variables was not declared
}
Я также предлагаю вам взглянуть на этот вопрос: Как проверить неопределенную переменную в JavaScript
В нем много объяснений не объявленных undefined и переменных null в javascript.
Нет, это не так. См. Мой комментарий к этому ответу.
Ты прав! Я неправильно понял весь корпус! Спасибо!
Почему вы не знаете, объявлена ли переменная
images?