Вы, наверное, уже задавались вопросом, почему люди советуют вам использовать textContent или innerText, но избегать InnerHtml, когда вы только начинаете свой путь. программист, я здесь, чтобы помочь вам понять, почему мы это делаем и когда лучше всего использовать каждое из этих свойств.

Я начну с того, что покажу вам код HTML, который я написал, как вы увидите, он содержит тег стиля и скрипта.

<div id="text">
    This are the <strong>differences</strong> between <em>innerText</em>, innertHtml and <strong>textContent</strong>
 <style>
        #text {
            text-transform: uppercase;
          }
          </style>
    <script>
            var text = document.getElementById('text');
            console.log(text.innerText);
            console.log(text.innerHTML);
            console.log(text.textContent);
          </script>
</div>

Посмотрим, что получит innerText:

var text = document.querySelector('#text');
text.innerText 
// => "THIS ARE THE DIFFERENCES BETWEEN INNERTEXT, INNERHTML AND TEXTCONTENT"

Свойство innerText извлекает текст так, как его видит пользователь, оно не извлекает какие-либо скрытые свойства внутри нашего кода, такие как стиль и скрипт. Это наименее используемый из всех трех свойств, поскольку он гораздо более требователен к производительности, ему требуется информация о макете для возврата результата, поэтому он используется не так, как два других свойства.

Теперь давайте посмотрим, что получит textContent :

text.textContent 
// =>        This are the differences between innerText, innerHtml and textContent
//        
//        #text {
//            text-transform: uppercase;
//          }
//           
//          
//            var text = document.getElementById('text');
//            console.log(text.innerText);
//            console.log(text.innerHTML);
//            console.log(text.textContent);

Как видите, textContent извлекает все содержимое внутри элемента, включая все его дочерние элементы, при отображении текстового содержимого он не принимает во внимание CSS или форматирование.

textContent — это самый простой способ избавиться от всех дочерних элементов, не ставя под угрозу вашу страницу с помощью innerHTML или делая ее такой же тяжелой, как innerText.

Наконец, innerHTML:

text.innerHTML 
//         This are the <strong>differences</strong> between <em>innerText</em>, innerHtml and <strong>textContent</strong>
//        <style>
//       #text {
//            text-transform: uppercase;
//          }
//          </style> 
//          <script>
//            var text = document.getElementById('text');
//            console.log(text.innerText);
//            console.log(text.innerHTML);
//            console.log(text.textContent);
//          </script>

Опять же, innerHTML будет получать ту же информацию, что и textContent, а также все форматирование, которое вы добавили в свой HTML. Его можно использовать для изменения всего выбранного HTML-элемента и добавления некоторого HTML-кода прямо из вашего JavaScript, но вы всегда должны задавать себе этот вопрос перед его использованием:

  • Будет ли это изменение жестко закодировано в моем javascript, и я могу ему доверять, или оно будет предоставлено пользователем?

Например, когда вы хотите добавить на свою веб-страницу то, что пользователь ввел в форму, в этом случае вам лучше использовать textContent.

Я надеюсь, что вы смогли немного лучше понять эти три свойства JavaScript и их небольшие отличия!

Пожалуйста, оставьте мне комментарий, если я что-то упустил из этого блога, так как я всего лишь студент и всегда буду рад узнать больше!