Задать вопрос
dollar
@dollar
Делай добро и бросай его в воду.

Что будет быстрее работать?

let page = elem.children[1].children[0].children[0].children[0];
//аналогичный поезд может быть из .parentNode
или
let page = document.querySelector('.page'); // То же самое


Если вы знаете подробности о том, как дружат JS и DOM, то интересно услышать ваше мнение.
  • Вопрос задан
  • 608 просмотров
Подписаться 4 Простой 1 комментарий
Решения вопроса 2
@Fragman
document.querySelector ищет по всей странице с помощью обычного перебора элементов, а children[] выполняется за O(1).
Очевидно, что children быстрее, особенно при большом наборе элементов на странице
Доказательство
Ответ написан
profesor08
@profesor08 Куратор тега JavaScript
Первое быстрее. Второе удобнее. Если грубо проверить в консоли:

start = Date.now();
for (let i = 0; i < 10000; i++) {
  let el = document.querySelector(".layout__body");
}
console.log(Date.now() - start);

Разница в скорости примерно в три раза, а чтоб ее увидеть в консоли, надо, хотя бы, 10000 раз выполнить действие. И даже так счет 4 против 12 миллисекунд.

Преимущества и недостатки обоих способов очевидны без тестов и скорость тут имеет не приоритетное значение. Любители стрелять себе в ногу могут пользоваться первым способом для выборки. Нормальные же люди пользуются первым способом когда программно надо пробежаться по потомкам/родителям и что-то найти.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mrsexy
@mrsexy
Senior Pomidor
Второй вариант однозначно лучше. Не забывайте, что путь к дочерним элементам может измениться, и ваша конструкция сломается.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 дек. 2024, в 20:40
10000 руб./за проект
22 дек. 2024, в 20:34
3000 руб./за проект
22 дек. 2024, в 20:12
10000 руб./за проект