What distinguishes invoking ... of on an Iterable versus invoking it on a function that yields an iterable?

Can you spot any variance between these two instances:

const elements = document.querySelectorAll('.someclass');
for(const element of elements){
    // perform an action
}

versus

for(const element of document.querySelectorAll('.someclass')){
    // perform an action
}

Is the function re-invoked on each iteration? Or is the distinction solely in the syntax?

Answer №1

They are practically identical, with the exception of the additional nodes variable name. Upon encountering

for (const varName of <expression>)

the interpreter will assess expression first before attempting to iterate over it. This evaluation only occurs once, as the goal is to obtain an iterable result.

const getIterable = function* () {
  console.log('getIterable running');
  yield 'foo';
  yield 'bar';
  yield 'baz';
};

for (const item of getIterable()) {
  console.log(item);
}

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

You cannot assign a promise to a React state

Calling a function from MoviesPage.tsx to fetch movie data results in a promise containing an object that is successfully fetched (can confirm by console logging). However, I'm facing an issue when trying to assign the result to a state - receiving a ...

AngularJS JQ Widgets Chart Display Issue

Trying to incorporate a chart using JQ widget, the code snippet below shows my controller code. When making an ajax call to retrieve data from the server, the response is received but the chart displays the previous data of that variable as undefined. Hard ...

What steps should I take to create a script that can manipulate elements of a webpage when a specific DIV is visible on the screen?

I am working on customizing the carousel on my website roseannebarr.tumblr.com. My plan is to add a dedicated "About" button on the left side of the carousel. When this button is clicked, I want a "left" arrow to appear in its place. I am new to Javascri ...

Concealing jQueryUI tooltip upon clicking a "target=_blank" link

I have implemented jQuery to display tooltips for all links on my webpage that include a 'details' attribute. $(function() { $tooltip = $(document).tooltip({ show: false, track: true, ...

What is the best way to deal with empty arrays during serialization of modified form elements only?

Managing a form with numerous multi-select fields can be challenging, especially when dealing with paged ajax. With each select having a unique ID and named accordingly as values[foobar1][], values[foobar2][], values[foobar3][], and so on, it's crucia ...

Is there a way to link to a specific section within a webpage using its ID, landing halfway down the page instead of at the top?

Can someone help me out with this issue? The header on my page is fixed at the top and has a height of 75px. When I click on a link (<a href="/company/#contact/">contact</a>), it takes me to the right section but the top part is hidden behind t ...

I must develop a custom function that generates a pure JavaScript string with the 'name' index and includes all the 'props'

My code is almost correct, but instead of returning a ':' in the Json result as desired, it returns a ','. Is there a way to achieve the desired result without modifying the JSON string like I did with the "replaces"? I am searching fo ...

Pause the event listener temporarily and reattach it after specific actions have been completed

I am currently working on a React app that includes a scrollable div. Here is an example: <main id="main" onScroll={this.handleScroll}> My question is, how can I temporarily remove the onScroll event listener from the main element and then reattach ...

Prevent removal of h2 tag within a contenteditable segment

Can a section be made permanent within a contenteditable element to prevent user removal? I have an h2 tag inside a contentEditable div. I do not want the user to be able to edit the h2 tag, so I set contentEditable=false, but they can still select and de ...

Transforming a three-dimensional point on a sphere into UV coordinates

I'm trying to convert a 3D point on a sphere into a UV point on the sphere's texture. Can someone provide guidance or a pure math solution? Edit: Currently, I have this code snippet, but it doesn't give the correct UV coordinate. Here, p ...

press, jQuery, and pop-up windows

I'm seeking to enhance my understanding of modals and JavaScript. I've been experimenting with buttons that are linked to PHP files, aiming to display the content of these PHP files in a modal window upon button click. Thus... button_1 retrieve ...

Interact with an AngularJS model using an external script

I've exhausted all possible methods to activate the ng-model functions in my form. Utilizing the bootstrap datepicker, I need the ng-model value to update when a date is selected. Can someone please advise me on how to interact with the ng-model using ...

Is it necessary for a writable stream in NodeJS to wait for the drain event before writing again automatically?

Below is the code I am working with: const { Writable } = require('stream') let writable = new Writable({ highWaterMark: 10 }) writable._write = (chunk, encoding, cb) => { process.stdout.write(chunk) } function writeData(iterations, writ ...

Is it feasible to use HTML to improve IE's tolerance for errors in markup, such as unnecessary tags?

I created a jQuery tabs element in the following way: <div id="tabs"> <ul> <li><a href="#tabs-1">Nunc tincidunt</a></li> <li><a href="#tabs-2">Proin dolor</a></li> < ...

What is the most efficient way to implement hiding/showing elements, adding/removing classes, and optimizing code in jQuery?

Looking for a more elegant solution to toggle classes on a div when clicking a button? Current code logic: jQuery(document).ready(function($) { // Removing/adding classes to show/hide div elements on button click // More efficient w ...

I am experiencing an issue where tapping on the Status Bar in MobileSafari is not functioning correctly on a specific

I am struggling to troubleshoot this problem with no success so far. The HTML5 JavaScript library I'm developing has a test page that can display a large amount of output by piping console.log and exceptions into the DOM for easy inspection on mobile ...

Protractor will pause for 30 seconds once the page has finished loading in Angular 2

I'm currently working on creating my first end-to-end tests for an Angular 2/4 application using Protractor. So far, everything is running smoothly as the pages load and input fields are successfully filled. However, I've encountered a major iss ...

Uncaught TypeError: Cannot read property 'e' of undefined in vue.js

Feeling a bit frustrated now :( This is my first time trying to use vue.js, which comes after jQuery as the second JS framework I'm diving into on this planet. Here's the HTML code I have: var main = new Vue({ el: ".main-content", data: { ...

The Zip file generated in memory is experiencing corruption

I'm encountering an issue while attempting to serve a zip file generated in memory by Flask to a JavaScript front-end. However, the downloaded file appears corrupted and I am unsure of what mistake I may be making. @app.route('/route') def ...

The callback function in JavaScript seems to be missing without ever being executed

I have a SendMail function using nodemailer that successfully sends emails, but the callback function logging "mail sent" is not getting executed. Any suggestions on what might be causing this? var email = '<a href="/cdn-cgi/l/email-protection" cla ...