Q:

simple script executes, but console warns ~= 'getComputedStyle' on 'Window': parameter is not of type 'Element'

This removes fixed menu bars at top of web pages (like SO has) when run in chrome's console. There are several other questions like this, but they ask "why doesn't this execute" (syntax errors?) - this is a simple and easily tested example, which executes but warns: 

Uncaught TypeError: Failed to execute 'getComputedStyle' on 'Window':
  parameter 1 is not of type 'Element'.

    var target = document.getElementsByTagName("*");
    for(ii in target){
        if(window.getComputedStyle(target[ii]).position === 'fixed'){
           target[ii].style.display = 'none';
           console.log('it"s gone');
        }
    }

getElementsByTagName returns a live node list, how are they not considered elements?

A:

The issue is that for .. in will get you more than just the indexes to that array like object (it's not an array, its a HTMLCollection I think or NodeList
solution 1: check if target.hasownPropert(ii) is true
var target = document.getElementsByTagName("*");
for(var ii in target){
    if(target.hasOwnProperty(ii)) {
        if(window.getComputedStyle(target[ii]).position === 'fixed'){
           target[ii].style.display = 'none';
           console.log('it"s gone');
        }
    }
}

solution 2: use for ... of
var target = document.getElementsByTagName("*");
for(var ii of target){
    if(window.getComputedStyle(ii).position === 'fixed'){
       ii.style.display = 'none';
       console.log('it"s gone');
    }
}

solution 3: use document.querySelectorAll
document.querySelectorAll('*').forEach(ii => {
    if(window.getComputedStyle(ii).position === 'fixed'){
       ii.style.display = 'none';
       console.log('it"s gone');
    }
});

