var obj ={name:'jack'} //1
function fn(){ //2
obj.name ='rose'; //3
obj={}; //4
obj.name='jerry'; //5
console.log(obj.name); //6
}
fn(); //7
console.log(obj.name); //8
解析:
顺着向下,遇见fn();调用函数在函数内,未定义变量,故不做变量提升,即在//3中,修改全局的obj,全局obj被修改为{name:'rose'};接着往下//4中,修改全局表的obj,成新的空对象;在//5中给空对象添加了name属性,对应值为jerry;引用数据类型值改变,受影响,故在//8中输出全局变量时,那么属性值变更为jerry;