js中为什么删除元素对象在前,获取元素对象在后,仍能获取对象的属性呢

问题遇到的现象和发生背景

不小心将删除元素对象写在前面,获取元素对象属性写在后面,发现仍可以获取

问题相关代码,请勿粘贴截图

this.parentNode.remove();
var index = this.parentNode.index;

运行结果及报错内容

正常运行,无报错

我的解答思路和尝试过的方法

更改位置是正常的js代码执行顺序,可以理解

我想要达到的结果

希望解释一下为什么这样可以,js代码不是从上往下去进行运行?

可以测试一下,新取到的这个和原来是是不是同一个,内容一样不一样?理论上元素删除后,就是undefined ,是不可以再用的

var 变量提升

你删除的是元素,获取的是parentNode的属性,这并不冲突