Я недавно стал изучать Javascript. Сейчас читаю учебник, в котором столкнулся вот с таким примером.
Правильно ли я понимаю алгоритм данной функции, если нет, то поправьте меня пожалуйста.
1)Если узел является элементом, то мы начинаем перебирать дочерние элементы узла.
2)Каждый элемент проверятся через рекурсивный вызов, если nodeType элемента равен ELEMENT_NODE, то рекурсивный вызов возвращает true и снова запускается.
3)Если рекурсивный вызов вернул false, то мы тогда переходим к ветке else if, если ветка возвращается false, то функция снова запускается.
Правильно ли понял алгоритм работы?
function talksAbout(node, string) {
if (node.nodeType == document.ELEMENT_NODE) {
for (var i = 0; i < node.childNodes.length; i++) {
if (talksAbout(node.childNodes[i], string))
return true;
}
return false;
} else if (node.nodeType == document.TEXT_NODE) {
return node.nodeValue.indexOf(string) > -1;
}
}
console.log(talksAbout(document.body, "string"));