JS - does NodeList.forEach asyc on my website?

I'm writing some JS for my webpage.
I have queried a list of divs using document.querySelectorAll then using NodeList.forEach
(https://developer.mozilla.org/en-US/docs/Web/API/NodeList/forEach)
However I would like to know will my code run sequencially - namely the callback in my NodeList.forEach pushes some items into an array.
Can I be certain that the next step will only happen once that forEach has iterated through each element?
  //Get all the selected tags
  selectedTags = document.querySelectorAll('[class*=lpSelectedTag]');
  selectedTagsArray = [];

  //Get the values attribute
  selectedTags.forEach(function(currentValue) { 
    selectedTagsArray.push(currentValue.attributes.value.value); 
  });

  //Then create some fancy string using selectedTagsArray

So at the last point where I make my 'fancy string' - would that line always occur after the forEach?
Thanks.

Can I be certain that the next step will only happen once that forEach has iterated through each element?

Yes. NodeList#forEach is a synchronous operation.

Side note: You could use Array.prototype.map:
selectedTagsArray = Array.prototype.map.call(selectedTags, function(currentValue) { 
    return currentValue.attributes.value.value; 
});

or in ES2015+:
selectedTagsArray = Array.from(selectedTags).map(function(currentValue) { 
    return currentValue.attributes.value.value; 
});

or:
selectedTagsArray = [...selectedTags].map(function(currentValue) { 
    return currentValue.attributes.value.value; 
});

Side note 2: If you want the current value of an input, it's not an attribute; use the value property instead: currentValue.value, not currentValue.attributes.value.value.