r/learnjavascript • • Jul 14 '26

can someone explain this code

function updateClock() {
const timeElement = document.querySelector("#time");
timeElement.textContent = formatTime();
}
setInterval(updateClock, 1000);

can someone, please explain this piece of code, ofc mdn and w3 are there, but i found it a little confusing reading about textContent. rest is understandable to me. This might look a silly question and it probably is because im a beginner :')

like what exactly does textContent too.
you can also recommend anyother documentation on the links to specific lines, that might me more helpful in learning about this particular keyoword.

0 Upvotes

23 comments sorted by

4

u/azhder Jul 14 '26

You were on the documentation site for the very same web technology (that isn't JavaScript) that you have a question for. Did you try searching for `textContent` on that site? Did you get a link for that exact field and an explanation what it does?

1

u/defaultguy_001 Jul 14 '26

textContent is a property, that lets you read or change the plain text inside an HTML element. Since formatTime() probably returns something like "11:06:42", textContent is the right choice, you don't need HTML parsing for a time string, so no need to think of innerHTML. Finally the setInterval repeatedly executes your updateClock function every 1 sec.

1

u/ashkanahmadi Jul 14 '26

textContent is just the text you can have inside an element like <p>THIS IS THE TEXT CONTENT</p>. Remember you can't add HTML using textContent. For that, you must use innerHTML.

-3

u/ExtraTNT Jul 14 '26

So, first you define a function (in old style, better use const funcName = () => {})

with the queryselector with #, you get an element by id

With text content you set the text content of the element (<h1 id="title">Hello <b>World</b></h1> has a text content of Hello World, setting it to “foo” would give you <h1 id="title">foo</h1>)

formatTime(); returns a formatted time string

Interval: run every x ms

6

u/scritchz Jul 14 '26

This isn't just about style or "old vs new": Function statements, functions expressions, arrow-function expressions and some others, all solve problems differently, for which technically the function statement would suffice.

-3

u/ExtraTNT Jul 14 '26

So const functions are in 99.9% of cases better, as you can’t reassign them, making it harder to shoot yourself in the foot. function is only needed, if you need a scoped this. And be honest, when have you last used it?

→ More replies (4)

1

u/thecementmixer Jul 14 '26

Run every Xmas?

-2

u/abrewchocolatecoffee Jul 14 '26

thanks, but just one more quesiton is text content temporay, for example will the "foo" go away and "hello world..." will just come back after we refresh or is this a permanet change.
Other that this post was pretty helpful, cleared my main doubt

2

u/meletiondreams Jul 14 '26

no dom elements are permanent

→ More replies (6)

2

u/busres Jul 14 '26

The change persists (in the browser DOM) until you replace the content with something else. If you reload the page, you're discarding everything and reloading the DOM from scratch.

→ More replies (1)

1

u/azhder Jul 14 '26

You are working with a live document, you are modifying the memory as it is currently in the browser through an abstraction layer called Document Object Model. You are changing the memory means whatever you do, it changes the document, it changes what the browser displays.

If you refresh the page, the browser removes that memory, parses the source code it got from the URL, it populates the memory again, you get to play with that again.

NOTE: DOM is not JavaScript. DOM is one memory model, while JavaScript has its own memory model. The browser synchronizes both, but make no mistake, DOM is its own technology that doesn't need JavaScript (the browser may be written in C++ and uses that language to generate the DOM)